如何使用groovy在xml中附加一行

问题描述

| 我有这个xml,我想在其中添加新的“ 0”
<rows>
  <row>
    <name>Abhishek</name>
    <host>[email protected]</host>
  </row>
  <row>
    <name>Simon</name>
    <host>[email protected]</host>
  </row>
<rows>
我使用MarkupBuilder(writer)创建了这个xml,但是现在我如何追加一个新的
row
元素 编辑:
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
    

解决方法

        要在Groovy中做到这一点,一种解决方案是:
import groovy.xml.StreamingMarkupBuilder

def xml = \"\"\"<rows>
  <row>
    <name>Abhishek</name>
    <host>[email protected]</host>
  </row>
  <row>
    <name>Simon</name>
    <host>[email protected]</host>
  </row>
</rows>\"\"\"

def root = new XmlSlurper().parseText( xml )
root.appendNode {
  row {
    name( \'tim\' )
    host( \'[email protected]\' )
  }
}

def outputBuilder = new StreamingMarkupBuilder()
String result = outputBuilder.bind{ mkp.yield root }