下面演示一些简单操作xml文件的方法,主要包括:1读取xml文件内容,2 字符串构建xml, 3 构建xml, 4 操作xml
xml文件内容如下:
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
//1读取xml文件中内容
def langs = new XmlParser().parse("E:\\language.xml")
println "type= ${langs.attribute('type')}"//langs可以直接操作xml中内容了
langs.language.each{//十分强大的直接遍历language的内容
println it.text()
}
//2 字符串变量和XML
def xml ="""
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
"""
def langs = new XmlParser().parseText(xml)
println "type= ${langs.attribute('type')}"//langs可以直接操作xml中内容了
langs.language.each{//十分强大的直接遍历language的内容
println it.text()
}
//3 构建xml
def str = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(str)
xml.langs(type:"current",count:3){
language('java')
language('Groovy')
language('javascript')
}
println str
//4 操作xml
def xml ="""
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
"""
def langs = new XmlParser().parseText(xml)
println "type= ${langs.attribute('type')}"//langs可以直接操作xml中内容了
langs.language.each{//十分强大的直接遍历language的内容
println it.text()
}
langs.@count = 5;//增加属性
langs.@type = 'future';//修改属性
langs.remove(langs.language[1])//删除节点
println langs
println langs.language[0].text()
langs.value = langs.language.sort{
it.text()
}.reverse()//给节点排序
println langs
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
"""
def langs = new XmlParser().parseText(xml)
println "type= ${langs.attribute('type')}"//langs可以直接操作xml中内容了
langs.language.each{//十分强大的直接遍历language的内容
println it.text()
}
langs.@count = 5;//增加属性
langs.@type = 'future';//修改属性
langs.remove(langs.language[1])//删除节点
println langs
println langs.language[0].text()
langs.value = langs.language.sort{
it.text()
}.reverse()//给节点排序
println langs
由于没有操作添加xml节点的示例,如有知道者,请赐教