XmlSlurper的逆过程

时间:2013-12-02 21:49:42

标签: xml groovy

我需要处理某种XML文件的某些字段,并将数据写回当前项目中的XML。在XML文件中读取时,XmlSlurper非常棒。但是,在groovy中有一种同样方便的方法可以将XmlSlurper中的内容写回XML吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

@Mataniko是对的,请考虑一下:

import groovy.xml.*

def xmlText = '''<items>
    <media>
        <id>1</id>
        <title>Hello</title>
    </media>
</items>'''

// Parse the XML into a GPathResult
def xml = new XmlSlurper().parseText( xmlText )

// Change the id to 4
xml.media.id = '4'

// Print it all back out
println XmlUtil.serialize( new StreamingMarkupBuilder().bind { mkp.yield xml } )

答案 1 :(得分:1)

您正在寻找的是MarkupBuilder类:Creating XML using Groovy's MarkupBuilder

一个简单的用法:

def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.items() {
    media{
        id(1)
        title("Hello")
   }
}

输出:

<items>
    <media>
        <id>1</id>
        <title>Hello</title>
    </media>
</items>