我如何通过Groovy(GPath)中的标记名称找到XML中的所有元素?
我需要找到car本文档中的所有元素:
<records>
<first>
<car>
<id>378932</id>
</car>
</first>
<second>
<foo>
<car>
<name>audi</name>
</car>
</foo>
</second>
</records>
Run Code Online (Sandbox Code Playgroud)
这是我尝试过但失败的原因:
def xml = new XmlSlurper().parse(file)
assert xml.car.size() == 2
Run Code Online (Sandbox Code Playgroud)
yeg*_*256 31
这是它的工作原理:
def xml = new XmlSlurper().parse(file)
def cars = xml.depthFirst().findAll { it.name() == 'car' }
assert cars.size() == 2
Run Code Online (Sandbox Code Playgroud)
tim*_*tes 15
你也可以这样做:
def xml = new XmlSlurper().parse(file)
def cars = xml.'**'.findAll { it.name() == 'car' }
Run Code Online (Sandbox Code Playgroud)
def records = new XmlSlurper().parseText(file)
reco?rds.depthFirst()?.findAll { !it.childNodes() && it.car} ?
/*Otherwise this returns the values for parent nodes as well*/
Run Code Online (Sandbox Code Playgroud)