首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Groovy中按标签名查找所有XML元素?

如何在Groovy中按标签名查找所有XML元素?
EN

Stack Overflow用户
提问于 2011-07-18 04:32:19
回答 3查看 47K关注 0票数 20

如何在Groovy (GPath)中通过标记名找到XML中的所有元素?

我需要在这个文档中找到所有的car元素:

代码语言:javascript
复制
<records>
  <first>
    <car>
      <id>378932</id>
    </car>
  </first>
  <second>
    <foo>
      <car>
       <name>audi</name>
      </car>
    </foo>
  </second>
</records>

这是我尝试过的,但失败了:

代码语言:javascript
复制
def xml = new XmlSlurper().parse(file)
assert xml.car.size() == 2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-18 09:54:19

它是这样工作的:

代码语言:javascript
复制
def xml = new XmlSlurper().parse(file)
def cars = xml.depthFirst().findAll { it.name() == 'car' }
assert cars.size() == 2
票数 37
EN

Stack Overflow用户

发布于 2011-07-18 15:52:28

您还可以执行以下操作:

代码语言:javascript
复制
def xml = new XmlSlurper().parse(file)
def cars = xml.'**'.findAll { it.name() == 'car' }
票数 16
EN

Stack Overflow用户

发布于 2011-07-18 04:34:07

使用XMLSlurper

代码语言:javascript
复制
def records = new XmlSlurper().parseText(file)
reco​rds.depthFirst()​.findAll { !it.childNodes() && it.car} ​

/*Otherwise this returns the values for parent nodes as well*/
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6726592

复制
相关文章

相似问题

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