如何添加节点到groovy MarkupBuilder? [英] How to add a node to groovy MarkupBuilder?

查看:407
本文介绍了如何添加节点到groovy MarkupBuilder?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我的代码



pre $ def cxml = new File(E: ).parseText(fxml.text)



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

def abc = new groovy.xml.MarkupBuilder()
abc.product(name:Dota){
language(Java)
语言(Groovy)
语言(JavaScript)
domainsinfa {delegate.current.appendNode(xmltext)}
}
您可以使用StreamingMarkupBuilder将任意节点插入到xml中:


$ b

$ b

  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)
语言(Groovy)
语言(JavaScript)
mkp.yield xml
}
}

println XmlUtil.serialize (newxml)


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

解决方案

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 )

这篇关于如何添加节点到groovy MarkupBuilder?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆