我有一些用XmlSlurper解析的xml,我想添加一个新节点,然后引用这个新节点。这演示了我正在尝试做的事情。除了1.添加节点2.序列化3.再次解析4.引用新节点?
import groovy.xml.XmlUtil
def xml = new XmlSlurper().parseText("<foo/>")
xml.appendNode({bar()});
//now try to append something to bar. Probably doesn't work because it's a closure
xml.bar.appendNode({baz()})
//no baz inside bar
println XmlUtil.serialize(xml)谢谢。
编辑:
您必须使用XMLParser才能使其工作:
import groovy.xml.XmlUtil
//slurper - does NOT work
def xml = new XmlSlurper().parseText("<foo/>")
xml.appendNode({bar()});
//now try to append something to bar
xml.bar.appendNode({baz()})
//no baz inside bar
println XmlUtil.serialize(xml)
//parser - works
xml = new XmlParser().parseText("<foo/>")
xml.appendNode('bar');
//now try to append something to bar
xml.bar.first().appendNode('baz')
//no baz inside bar
println XmlUtil.serialize(xml)原因在这篇文章的回答中解释了:
发布于 2014-07-31 08:06:12
如下所示,使用过程中会出现什么问题?
import groovy.xml.XmlUtil
def xml = new XmlSlurper().parseText( "<foo/>" )
xml.appendNode {
bar {
baz()
}
}
println XmlUtil.serialize( xml )https://stackoverflow.com/questions/25047426
复制相似问题