代码之家  ›  专栏  ›  技术社区  ›  George Cimpoies

在groovy/java中递归解析XML

  •  0
  • George Cimpoies  · 技术社区  · 8 年前

    我有以下几点。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 回复  |  直到 8 年前
        1
  •  1
  •   daggett    8 年前
    def root = new XmlParser().parseText(...)
    root.depthFirst().each{e->
        //do something with each element
    }
    
    推荐文章