如何在使用 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()]}