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

标签 xml groovy gpath

在常规中使用 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/

相关文章:

Android后台字符串资源

PostgreSQL 未终止的引用标识符

java - 通过 gradle 运行特定的@Issue

java - GPathResult ..存在或不存在节点

php - 注册命名空间后如何获取xml节点值?

c# - 从包含用于导航的格式良好的 XML 的字符串构造 XML 文档的有效方法?

xml - XSLT:获取存在某一特定值的节点

java - 如何配置和检索 g :select in Grails? 的值

groovy - 我需要一个 GPath 查询来使用数字索引选择节点

xml - 使用XmlSlurper/GPath查找不区分大小写的xml元素值?