我正在使用Groovy XmlParser
来阅读一些XML文档。只要我知道元素在树中的位置,这样就可以正常工作。但是,我还没有找到一种方法来搜索整个XML文档中的元素,例如在XPath中//ElementName
。
Groovy这样做的方式是什么?
答案 0 :(得分:4)
寻找这样的东西?
def xml =
'''
<root>
<parent>
<child>
<firstName>John</firstName>
<lastName>Doe</lastName>
</child>
<child>
<firstName>Tony</firstName>
<lastName>Stark</lastName>
</child>
<child>
<firstName>Captain</firstName>
<lastName>America</lastName>
</child>
</parent>
</root>
'''
def parsed = new XmlParser().parseText(xml)
assert ['John', 'Tony', 'Captain'] ==
parsed.depthFirst().findAll { it.name() == 'firstName' }*.text()
(如Tim所述)您可以使用'**'
进行depthFirst
搜索
assert ['John', 'Tony', 'Captain'] ==
parsed.'**'.findAll { it.name() == 'firstName' }*.text()