且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Groovy脚本来读取和转换XML

更新时间:2023-12-05 17:07:16

您只需要转换输入xml。



这可以通过以下方式实现:


  • 编写一个xslt并使用runner执行

  • 在groovy本身中进行转换。



看起来您正在寻找后者。 p>

以下是groovy脚本: $ b

  def xml ='''<?xml version =1.0encoding =UTF-8?> 
< Record>
< XYZ>
< Header>
< Code> 12345< / Code>
< / Header>
<详情>
< RecID> 1< / RecID>
< RecordDetail>
<名称> ABC< /名称>
<电子邮件> abc@in.com< /电子邮件>
<地址> 123,acdf< /地址>
< / RecordDetail>
< /详细>
<详情>
< RecID> 2< / RecID>
< RecordDetail>
<名称> ABC< /名称>
<电子邮件> abc@in.com< /电子邮件>
< / RecordDetail>
< /详细>
< / XYZ>
< / Record>'''

def parsedXml = new XmlSlurper()。parseText(xml)
$ b $ def builder = new groovy.xml.StreamingMarkupBuilder )
builder.encoding ='UTF-8'
def transformedXml = builder.bind {
mkp.xmlDeclaration()
记录{
标题{
code(parsedXml。'**'。find {it.name()=='Code'})
}
def details = parsedXml。'**'。findAll {it.name()= ='Details'}
details.each {detail - >
详细信息{
RecID(detail.RecID)
detail.RecordDetail.children()。each {fld - >
RecordDetail {
FieldName(fld.name())
FieldValue(fld.text())
}
}
}
}



println groovy.xml.XmlUtil.serialize(transformedXml)