在常规中使用 XmlParser()。 请参见以下代码。当 name 的值为 type 时,我需要打印 answer 的值。
<root>
<foo name = 'type' answer = 'car'/>
<foo name = 'color' answer = 'red'/>
<foo name = 'size' answer = 'big'/>
</root>
我需要做这样的事情:
def XML = new XmlParser().parseText(XMLstring)
println XML.root.foo.[where @name = 'type'].@answer
最佳答案
我不知道您是否希望有多个匹配项,或者您是否知道只有一个匹配项。下面将找到它们并打印它们的答案。
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
}
希望对您有所帮助。
编辑:
如果你知道只有一个你可以做这样的事情......
println xml.find { it.@name == 'type' }.@answer
另一种选择(你有几个):
xml = new XmlParser().parseText(source)
xml.each {
if(it.@name == 'type') {
println it.@answer
}
}
关于xml - 使用 Groovy (gpath) 获取 XML 属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24436173/