如何在Groovy中按标记名查找所有XML元素?
如何在Groovy(GPath)中通过标记名找到XML中的所有元素 我需要在此文档中找到所有如何在Groovy中按标记名查找所有XML元素?,xml,groovy,Xml,Groovy,如何在Groovy(GPath)中通过标记名找到XML中的所有元素 我需要在此文档中找到所有car元素: <records> <first> <car> <id>378932</id> </car> </first> <second> <foo> <car> <name>audi</na
car
元素:
<records>
<first>
<car>
<id>378932</id>
</car>
</first>
<second>
<foo>
<car>
<name>audi</name>
</car>
</foo>
</second>
</records>
使用
这就是它的工作原理:
def xml = new XmlSlurper().parse(file)
def cars = xml.depthFirst().findAll { it.name() == 'car' }
assert cars.size() == 2
您还可以执行以下操作:
def xml = new XmlSlurper().parse(file)
def cars = xml.'**'.findAll { it.name() == 'car' }
谷歌:“GroovyXMLSlurper”谢谢大家,我知道使用什么类。你能解释一下我是如何通过一个给定的标记找到所有元素的吗?你的代码示例不起作用。它返回所有元素,而不仅仅是
car
-s。你测试过吗?确实:)这花了一些时间,但现在我也是Grails的人:)谢谢你的帮助,我投票支持了你的答案。但是右边的是我的。id标签没有正确关闭
def xml = new XmlSlurper().parse(file)
def cars = xml.depthFirst().findAll { it.name() == 'car' }
assert cars.size() == 2
def xml = new XmlSlurper().parse(file)
def cars = xml.'**'.findAll { it.name() == 'car' }