final String xml = '''
<Result>
<Data id="99" ServerTime="服务器时间" TotalpageNum="总页数" CurPageNum="当前页数">
<CASE id='1'>
<AHDM id='11'>001</AHDM>
<XH>001XH</XH>
<NAME>李小龙</NAME>
<FYDM>001FY</FYDM>
<FYDM>001FY</FYDM>
</CASE>
<CASE id='1'>
<AHDM id='11'>002</AHDM>
<XH>002XH</XH>
<NAME>周星池</NAME>
<FYDM>002FY</FYDM>
</CASE>
<CASE id='2'>
<AHDM id='22'>003</AHDM>
<XH>003XH</XH>
<NAME>李小龙</NAME>
<FYDM>003FY</FYDM>
<FYDM>003FY</FYDM>
</CASE>
</Data>
</Result>'''
def xmlSluper = new XmlSlurper()
def response = xmlSluper.parseText(xml)
println response.Data.CASE[0].XH.text() //001XH
println response.Data.@id //99
def list = []
//此处返回的是满足条件的当前节点集合
response.Data.CASE.each {
ca -> if (ca.NAME.equals('李小龙')) {
list.add(ca.AHDM.text())
}
}
println list //[001, 003]
//groovy的遍历
//def cas = response.depthFirst().findAll {
def cas = response.'**'.findAll {
ca -> return ca.NAME.text() == "李小龙"
}
println cas.toListString()
//广度遍历xml 重新看
//def name = response.Data.'*'.findAll {
def name = response.Data.children().findAll {
node -> node.name() == 'CASE' && node.@id == '1'
}.collect { node -> return node.NAME.text() }
println name //[李小龙, 周星池]
网友评论