我有一个看起来像这样的XML.
<?xml version="1.0" encoding="UTF-8"?>
<header>
<row>
<item1>stuff</item1>
<item2>stuff</item2>
</row>
<row>
<item1>stuff</item1>
<item2>stuff</item2>
</row>
...
</header>
Run Code Online (Sandbox Code Playgroud)
我想读这个
def doc = new XmlSlurper().parseText(message)
Run Code Online (Sandbox Code Playgroud)
然后输出每个"row"元素作为单独的消息.例如:
<header>
<row1>
<item1>stuff</item1>
<item2>stuff</item2>
</row1>
</header>
Run Code Online (Sandbox Code Playgroud)
在Groovy中执行此操作的正确方法是什么?我应该使用XSLT还是过于复杂的东西?
如果你的情况真的很简单,我会选择Groovy,在这种情况下真的很棒.
final xml = '''
<header>
<row>
<item1>stuff11</item1>
<item2>stuff12</item2>
</row>
<row>
<item1>stuff21</item1>
<item2>stuff22</item2>
</row>
</header>
'''
final xmlDoc = new XmlSlurper().parseText(xml)
Run Code Online (Sandbox Code Playgroud)
阅读完文档后,为每一行构建一个文档
def rowId = 1
String singleRow = new StreamingMarkupBuilder().bind {
header {
"row$rowId" {
mkp.yield xmlDoc.row[rowId-1].children()
}
}
}
Run Code Online (Sandbox Code Playgroud)
它已经完成了.