如何在GPath中按属性值查找元素?

yeg*_*256 20 java groovy xpath gpath

//div[@id='foo']在GPath中,这个XPath的替代方法是什么?一般来说,我可以在哪里找到这份文件?

Nic*_*zyk 28

这是相应的片段:

def node = new XmlSlurper().parseText(...)
def foo = node.depthFirst().findAll { it.name() == 'div' && it.@id == 'foo'}
Run Code Online (Sandbox Code Playgroud)

您可能想要阅读的其他一些链接:

  • 它是Groovy,而不是GPath.我需要一个GPath表达式. (3认同)
  • 不太清楚你的意思,因为GPath主要使用带有以下额外符号的groovy语法:".."返回父"*",它返回充当深度第一循环"@"的所有子句"**"用于访问普通节点访问者的属性. (3认同)

win*_*n74 8

之前的海报为您提供了所需要的一切:假设您的文件已被插入xml,您需要

def foo = xml.path.to.div.find{it.@id == 'foo'}
Run Code Online (Sandbox Code Playgroud)

找到一个结果.或者findAll找到所有结果.

  • `xml.'**'.findAll {it.@ attributeName}` (2认同)