在groovy / java中递归解析XML

时间:2018-05-16 12:56:46

标签: java xml groovy xml-parsing

我有以下.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 :(得分:1)

def root = new XmlParser().parseText(...)
root.depthFirst().each{e->
    //do something with each element
}