如何在使用 groovy 和 slurper 或解析器解析后遍历嵌套 XML
How to iterate through Nested XML after parsing using groovy with slurper or parser
我正面临以下 xml 迭代的问题,因为它忽略了某些部分。
谁能指导我完成这个
<?xml version="1.0" encoding="UTF-8"?>
<fruits type="array">
<fruit>
<name>Apple</name>
<alias>App</alias>
<colors>
<color>Red</color>
<color>Green</color>
</colors>
<available-in type="array">
<country>
<name>Ind</id>
</country>
<country>
<name>Ind</id>
</country>
</available-in>
</fruit>
</fruits>
请找到我在下面使用的Groovy代码
def map = new XmlSlurper().parseText(response).children().collectEntries{n->[(n.name()):{->n.children()?.collectEntries(owner)?:n.text()}()]};
您可以使用 groovy 的 GPath capability called depthFirst() 像这样遍历所有子项:
def map = new XmlSlurper().parseText(response).depthFirst().collectEntries{[(it.name()): it.text()]}
我正面临以下 xml 迭代的问题,因为它忽略了某些部分。 谁能指导我完成这个
<?xml version="1.0" encoding="UTF-8"?>
<fruits type="array">
<fruit>
<name>Apple</name>
<alias>App</alias>
<colors>
<color>Red</color>
<color>Green</color>
</colors>
<available-in type="array">
<country>
<name>Ind</id>
</country>
<country>
<name>Ind</id>
</country>
</available-in>
</fruit>
</fruits>
请找到我在下面使用的Groovy代码
def map = new XmlSlurper().parseText(response).children().collectEntries{n->[(n.name()):{->n.children()?.collectEntries(owner)?:n.text()}()]};
您可以使用 groovy 的 GPath capability called depthFirst() 像这样遍历所有子项:
def map = new XmlSlurper().parseText(response).depthFirst().collectEntries{[(it.name()): it.text()]}