使用 Groovy (gpath) 获取 XML 属性的值

2023-12-05

在 groovy 中使用 XmlParser()。 请参阅以下代码。我需要打印的值answer当值name is type.

   <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
}

我希望这有帮助。

EDIT:

如果你知道只有一个你可以做这样的事情......

println xml.find { it.@name == 'type' }.@answer

还有另一个选择(你有几个):

xml = new XmlParser().parseText(source)

xml.each { 
    if(it.@name == 'type') {
        println it.@answer
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Groovy (gpath) 获取 XML 属性的值 的相关文章

随机推荐