Groovy 操作xml

<langs type='current' count='3' mainstream='true'>
  <language flavor='static' version='1.5'>Java</language>
  <language flavor='dynamic' version='1.6.0'>Groovy</language>
  <language flavor='dynamic' version='1.9'>JavaScript</language>
</langs>

//XmlParser使用Gpath,返回Node,NodeList,以及屬性對應的Map
//所以你在訪問xml文件中的屬性時,也就如同訪問list和map中的屬性
def langs = new XmlParser().parseText(xml)
//獲取屬性
println langs.attribute("count")
//獲取節點
langs.language.each{
  println it.text()
}
//結合使用Gpath和spread-dot
def values = langs.language*.text()


//使用XmlSlurper,返回的是groovy.util.slurpersupport.GPathResult
//使用XmlSluper訪問xml時在寫法上更加的便捷
langs = new XmlSlurper().parseText(xml)
println langs.language.@count
langs.language.each{
  println it
}

//構造xml
def out =new StringWriter()
def xml = new MarkupBuilder(out)
//構造一段xml如同構造一個java對象
//groovy引擎在找不到name方法,address方法時,自動識別爲添加元素
xml.person{
	name(type:'berdy')
	address('上海')
	friends{
		for(i in 1..10)
			friend i
	}
}
println out.toString()



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章