【问题标题】:Get value of an XML attribute with Groovy (gpath)使用 Groovy (gpath) 获取 XML 属性的值
【发布时间】:2014-06-26 16:54:50
【问题描述】:

在 groovy 中使用 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

【问题讨论】:

  • 你试过谷歌搜索吗? first hit 已经显示 findAll 用法

标签: xml groovy gpath


【解决方案1】:

我不知道您是否期望会有多个匹配项,或者您是否知道会有一个匹配项。以下将找到它们并打印它们的答案。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    相关资源
    最近更新 更多