我遇到以下情况的问题:
- 我有一个GPathResult“body”我要追加更多xml(节点和子节点) - 有些部分是常见的,所以我试图将它们保存在外部封闭“commonNode”中,我可以在任何需要的地方插入
// some more code here to get body
def commonNode = {
return {
node2() {
child("childValue")
}
}
}
body.appendNode(
{
node1("value1")
commonNode()
node3("value3")
}
)
我打电话给XmlUtil.serialize(body)之后我想得到的是:
...
<body>
<node1>value</node1>
<node2>
<child>childValue</child>
</node2>
<node3>value3</node3>
<body>
...
然而,结果完全没有结构,所以我想我调用外部闭包“commonNode()”的方式有问题。
希望有人有答案。如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:2)
这有效:
import groovy.xml.*
def xml = '<body/>'
def body = new XmlSlurper().parseText( xml )
def commonNode = {
node2 {
child "childValue"
}
}
body.appendNode {
node1 "value1"
commonNode.delegate = delegate
commonNode()
node3 "value3"
}
println XmlUtil.serialize( body )