简体   繁体   English

在Groovy / Java中递归解析XML

[英]Parse XML recursively in groovy / java

I have the following .XML file: 我有以下.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>

I want to implement java / groovy recursive algorithm that will visit each node, no matter the depth (in the example the maximum depth is 2, but it can vary) 我想实现java / groovy递归算法,无论深度如何(在示例中,最大深度为2,但是可以变化),它将访问每个节点

So far I have: 到目前为止,我有:

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

which will visit TestSuite1 and TestSuite2, but I want it to visit all nodes recursively. 它将访问TestSuite1和TestSuite2,但是我希望它递归地访问所有节点。

Any help is much appreciated! 任何帮助深表感谢!

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM