如何使用XmlSlurper读取XML文件并插入使用MarkupBuilder构建的树中?

时间:2011-06-02 23:16:47

标签: xml groovy

我正在编写一个使用MarkupBuilder生成XML文档的脚本,我想在从文件中读取的树中插入XML文件。我怎么做?下面是一个例子。

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.root() {
  new XmlSlurper().parse(new File("file.xml"))
}

我尝试了mkp.yield和mkp.yieldUnescaped,但两者都会导致输出中出现转义文本。 Groovy邮件列表上的帖子似乎表明这可以通过StreamingMarkupBuilder实现,但目前尚不清楚MarkupBuilder是否存在解决方案。

1 个答案:

答案 0 :(得分:8)

请参阅@Tim关于将节点附加到现有树的答案: How to append a row in a xml using groovy

未经测试,但这应该是转义输出:

def(xml,build,output)
xml = new XmlSlurper().parseText( new File("file.xml").getText() )
build = new StreamingMarkupBuilder()
output = build.bind{ mkp.yieldUnescaped xml }