首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GPath中通过属性值查找元素?

如何在GPath中通过属性值查找元素?
EN

Stack Overflow用户
提问于 2011-08-11 12:28:18
回答 4查看 22.2K关注 0票数 22

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-11 12:55:34

下面是相应的代码片段:

代码语言:javascript
复制
def node = new XmlSlurper().parseText(...)
def foo = node.depthFirst().findAll { it.name() == 'div' && it.@id == 'foo'}

以下是您可能想要阅读的其他链接:

  • GPath documentation
  • Processing XML with Groovy
票数 30
EN

Stack Overflow用户

发布于 2011-08-11 16:53:25

前一篇文章给出了所需的所有内容:假设您的文档已被转换为xml,您希望

代码语言:javascript
复制
def foo = xml.path.to.div.find{it.@id == 'foo'}

找到一个单一的结果。或findAll来查找所有结果。

票数 8
EN

Stack Overflow用户

发布于 2015-04-24 22:58:42

要模仿表达式//div@id='foo‘,您可以对GPath执行的最接近的操作是:

代码语言:javascript
复制
def xml = new XmlParser().parseText(text)
xml.'**'.div.findAll { it.@id=="foo" }

“**”与XPath中的“//”几乎相同。

代码语言:javascript
复制
xml.'**'.div

将在任何级别生成类型为div的所有节点。

稍后使用findAll()对给定的闭包进行过滤,您将获得一个节点列表,就像在XPath示例中所做的那样

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7020843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档