在groovy中使用XmlParser().请参阅以下代码.当name的值是type时,我需要打印answer的值.
<root>
<foo name = 'type' answer = 'car'/>
<foo name = 'color' answer = 'red'/>
<foo name = 'size' answer = 'big'/>
</root>
Run Code Online (Sandbox Code Playgroud)
我需要做这样的事情:
def XML = new XmlParser().parseText(XMLstring)
println XML.root.foo.[where @name = 'type'].@answer
Run Code Online (Sandbox Code Playgroud)
我不知道你是否希望有多场比赛,或者如果你知道会有一场比赛.以下将找到所有并打印他们的答案.
source = '''
<root>
<foo name = 'type' answer = 'car'/>
<foo name = 'color' answer = 'red'/>
<foo name = 'size' answer = 'big'/>
</root>
'''
xml = new XmlParser().parseText(source)
results = xml.findAll { it.@name == 'type' }
results.each {
println it.@answer
}
Run Code Online (Sandbox Code Playgroud)
我希望有所帮助.
编辑:
如果你知道只有一个你可以做这样的事......
println xml.find { it.@name == 'type' }.@answer
Run Code Online (Sandbox Code Playgroud)
还有另一个选择(你有几个):
xml = new XmlParser().parseText(source)
xml.each {
if(it.@name == 'type') {
println it.@answer
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11288 次 |
| 最近记录: |