如何将节点添加到groovy MarkupBuilder?

abi*_*964 2 groovy

我使用MarkupBuilder生成xml,需要知道如何将NodeChild添加到MarkupBuilder对象

我的代码

def fxml=new File("E:\\Projects\\dom.xml")
def xmltext=new XmlSlurper(false,false).parseText(fxml.text)

    or

    def xml=new XmlSlurper(false,false).parse("E:\\Projects\\dom.xml")

def abc = new groovy.xml.MarkupBuilder()
abc.product(name:"Dota"){
  language("Java")
  language("Groovy")
  language("JavaScript")
  domainsinfa{delegate.current.appendNode( xmltext)}
}
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 7

您可以使用StreamingMarkupBuilder将任意节点插入xml:

import groovy.xml.*

def xmltext = '''<node><name short="yes">tim</name><fun>maybe</fun></node>'''

def xml = new XmlSlurper( false, false ).parseText( xmltext )

def newxml = new StreamingMarkupBuilder().bind {
  product(name:"Dota") {
    language("Java")
    language("Groovy")
    language("JavaScript")
    mkp.yield xml 
  }
}

println XmlUtil.serialize( newxml )
Run Code Online (Sandbox Code Playgroud)