AabinGunz
AabinGunz

Reputation: 12347

How to add a node to groovy MarkupBuilder?

I am using MarkupBuilder to generate xml, need to know how can I add NodeChild to a MarkupBuilder Object

my code

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)}
}

Upvotes: 2

Views: 3384

Answers (1)

tim_yates
tim_yates

Reputation: 171084

You can use StreamingMarkupBuilder to insert arbitrary nodes to the 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 )

Upvotes: 7

Related Questions