Groovy XmlSlurper appendNode仅用于子内容

c0vxltue  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(119)

我有以下xml对象:

def slurper = new XmlSlurper()
def xmlObject = slurper.parseText("<root />")

def xmlObject2 = slurper.parseText("<root2><child1>hello</child1><child2>world</child2></root2>")

现在,目标是拥有以下XML格式:

<root>
<root2>
<child1>hello</child1>
<child2>world</child2>
<root2>
</root>

如果我像这样使用appendNode:

xmlObject.appendNode {
   root2(xmlObject2)
}

我会得到:

<root>
<root2>
<root2>
<child1>hello</child1>
<child2>world</child2>
<root2>
<root2>
</root>

我有两个root2。如何只添加子内容的节点?或者没有任何标签名的appendNode?
谢谢

t9eec4r0

t9eec4r01#

为什么不直接将节点添加为xmlObject.appendNode(xmlObject2)?这是我想出来的:

import groovy.xml.XmlUtil

def slurper = new XmlSlurper()
def xmlObject = slurper.parseText("<root />")

def xmlObject2 = slurper.parseText("<root2><child1>hello</child1><child2>world</child2></root2>")

xmlObject.appendNode(xmlObject2)

println XmlUtil.serialize(xmlObject)

它生产:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <root2>
    <child1>hello</child1>
    <child2>world</child2>
  </root2>
</root>

看起来像你想要的结果。我希望能帮上忙。

相关问题