XML生成提供了MarkupBuilder、StreamingMarkupBuilder类
XML操作: MarkupBuilder
MarkupBuilder (): Prints markup to System.out
import groovy.xml.*
def xml = new MarkupBuilder()
xml.langs("type":currecy){
language("java")
language("groovy")
language("c++")
}
MarkupBuilder (PrintWriter pw): Sends markup to the given PrintWriter
import groovy.xml.*
def ps = new StringWriter()
def xml = new MarkupBuilder(ps)
xml.langs("type":currecy){
language("java")
language("groovy")
language("c++")
}
println ps.toString()
XmlParser解析的是xml格式的字符串
import groovy.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.language.each{
println it.text()
}
xml code
<langs type="current"> <language>Java</language> <language>Groovy</language> <language>JavaScript</language> </langs>
XmlParser进行xml解析
def langs = new XmlParser().parse("languages.xml")
println "type = ${langs.attribute("type")}"
langs.language.each{
println it.text()
}
XML 示例:
<Results>
<ResultSet fetchSize="128">
<Row rowNumber="1">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>1</MONTH>
<DID>25.4793</DID>
</Row>
<Row rowNumber="2">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>2</MONTH>
<DID>20.6522</DID>
</Row>
<Row rowNumber="3">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>3</MONTH>
<DID>20.6655</DID>
</Row>
<Row rowNumber="4">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>4</MONTH>
<DID>21.9393</DID>
</Row>
<Row rowNumber="5">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>5</MONTH>
<DID>21.9393</DID>
</Row>
<Row rowNumber="6">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>6</MONTH>
<DID>22.2763</DID>
</Row>
<Row rowNumber="7">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>7</MONTH>
<DID>20.9573</DID>
</Row>
<Row rowNumber="8">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>8</MONTH>
<DID>20.9573</DID>
</Row>
<Row rowNumber="9">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>9</MONTH>
<DID>21.2648</DID>
</Row>
<Row rowNumber="10">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>10</MONTH>
<DID>19.7917</DID>
</Row>
<Row rowNumber="11">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>11</MONTH>
<DID>19.7917</DID>
</Row>
<Row rowNumber="12">
<ID>0000000001</ID>
<YEAR>2015</YEAR>
<MONTH>12</MONTH>
<DID>19.9990</DID>
</Row>
</ResultSet>
</Results>
//Method 1
def node = 'DID'
directResult = xml.ResultSet.Row.grep{(it.YEAR.text() == '2015' && it.MONTH.text()== '12')}.getAt(node)
//output: [19.990]
//Method 2
directResult = xml.ResultSet.Row.find{
if(it.YEAR.text() == '2015' && it.MONTH.text() == '12')
return it.getAt(node).text()
else
return ""
}.getAt(node).text()
//output: 19.990
本文探讨了Groovy和Java在XML解析和生成中的应用,通过实例展示了如何使用Groovy的MarkupBuilder和XmlParser类进行XML操作,以及Java的XmlSlurper和StreamingMarkupBuilder类的功能。
1155

被折叠的 条评论
为什么被折叠?



