考虑到我有以下XML结构:
<Header>
<Parent1>
<Line> ABC </Line>
</Parent1>
<Parent1>
<Line> CDE </Line>
</Parent1>
<Parent2>
<Line> EFG </Line>
</Parent2>
</Header>
我希望所有Parent1
个父节点都更改为Parent2
。像这样:
<Header>
<Parent2>
<Line> ABC </Line>
</Parent2>
<Parent2>
<Line> CDE </Line>
</Parent2>
<Parent2>
<Line> EFG </Line>
</Parent2>
</Header>
在Groovy中有一种简单的方法来执行此要求吗?
答案 0 :(得分:2)
您可以使用XmlSlurper执行此操作。
def xml = '''<?xml version='1.0' encoding='utf-8'?>
<Header>
<Parent1>
<Line> ABC </Line>
</Parent1>
<Parent1>
<Line> CDE </Line>
</Parent1>
<Parent2>
<Line> EFG </Line>
</Parent2>
</Header>
'''
def result = new XmlSlurper().parseText(xml)
result.Parent1.replaceNode {
'Parent2'(it.attributes(), it.children())
}
println(XmlUtil.serialize(result))
您可以在XML Processing documentation中找到更多信息。