Разбор XML рекурсивно в Groovy / Java - PullRequest
0 голосов
/ 16 мая 2018

У меня есть следующий файл .XML:

<testItems>
<children>
    <testItem name=TestSuite1>
        <children>
            <testItem name=test1>
            </testItem>
            <testItem name=test2>
            </testItem>
            <testItem name=test3>
            </testItem>
        </children>
    </testItem>
    <testItem name=TestSuite2>
        <children>
            <testItem name=test3>
            </testItem>
            <testItem name=test4>
            </testItem>
            <testItem name=test5>
            </testItem>
        </children>
    </testItem>
</children>

Я хочу реализовать рекурсивный алгоритм Java / Groovy, который будет посещать каждый узел, независимо от глубины (в примере максимальная глубина равна 2, но она может варьироваться)

Пока у меня есть:

root.testItems.children.testItem.each{testItem ->
...rest of code...
}

, который посетит TestSuite1 и TestSuite2, но я хочу, чтобы он посещал все узлы рекурсивно.

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 16 мая 2018
def root = new XmlParser().parseText(...)
root.depthFirst().each{e->
    //do something with each element
}
...