我有一个类似下面的XML。
xml1 = '''
<?xml version="1.0" encoding="UTF-8"?>
<soap>
<group1>
<g1node1>g1value1</g1node1>
<g1node2>g1value2</g1node2>
<g1node3>g1value3</g1node3>
</group1>
<group2 attr="attrvalue1">
<g2node1>g2value1</g2node1>
<g2node2>g2value2</g2node2>
<g2node3>g2value3</g2node3>
</group2>
</soap>
'''
在这里,我需要将所有xml节点及其值作为输出,作为逐行结果和带有groovy的列表。输出应该看起来像
g1node1 = g1value1
g1node2 = g1value2
... and so on...
或者使用如下所示的groovy地图
out = [g1node1 : "g1value1", g1node2 : "g1value2", ...and so on...]
任何人都可以帮助我如何使用groovy代码实现这一目标吗?
答案 0 :(得分:0)
我仍然想知道(正如蒂姆所提到的)你已尝试过的东西,但这是我的痒:
def result = new XmlSlurper().parseText( xml )
result.'**'.collectEntries { !it.childNodes() ? [ it.name(), it.text() ] : [:] }