用Groovy XmlParser搜索整个文档中的XML元素
我正在使用Groovy用Groovy XmlParser搜索整个文档中的XML元素,xml,groovy,Xml,Groovy,我正在使用GroovyXmlParser阅读一些XML文档。只要我知道元素在树中的位置,这就行了。但是,我还没有找到一种方法来搜索整个XML文档中的元素,例如在XPath//ElementName中 做这件事的最佳方式是什么?正在寻找类似的东西吗 def xml = ''' <root> <parent> <child> <firstName>John</firstName>
XmlParser
阅读一些XML文档。只要我知道元素在树中的位置,这就行了。但是,我还没有找到一种方法来搜索整个XML文档中的元素,例如在XPath//ElementName
中
做这件事的最佳方式是什么?正在寻找类似的东西吗
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()
在找这样的东西吗
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()
您还可以对相同的结果执行
parsed.'**'.findAll…
,也可以对相同的结果执行parsed.'**'.findAll…