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

dro*_*del 0 xml groovy

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

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.root() {
  new XmlSlurper().parse(new File("file.xml"))
}
Run Code Online (Sandbox Code Playgroud)

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

vir*_*yes 8

请参阅@Tim关于将节点附加到现有树的答案: 如何使用groovy在xml中追加行

没有测试,但这应该得到转义输出:

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

  • +1和`xml = new XmlSlurper().parse(new File("file.xml"))`可能更干净:) (2认同)