Groovy使用XMLHolder迭代节点

joh*_*ohn 5 xml groovy soapui

我想用XML-Holder迭代XML文件的节点.

def reader = groovyUtils.getXmlHolder(test1 );
Run Code Online (Sandbox Code Playgroud)

假设XML看起来像如下:

<xml>
   <node>
      <val1/>
      <val2/>
   </node1>
   <node>
      <val1/>
      <val2/>
   </node2>
</xml>
Run Code Online (Sandbox Code Playgroud)

我想读取不同节点的值.(val1,val2).所以我试着这样:

for( node in reader.getNodeValues( "//ns1:node" ))
{}
Run Code Online (Sandbox Code Playgroud)

它真的遍历节点,但我不知道如何访问它们内部的值.

非常感谢你的帮助!

约翰

ata*_*lor 7

而不是getNodeValues,你可能想要打电话getDomNodes.这将返回类的标准Java DOM节点org.w3c.dom.Node.从那里你可以遍历子节点getFirstChild并迭代getNextSibling.Groovy的DOMCategory添加了一些方便的辅助方法,使其不那么痛苦.

例如:

use (groovy.xml.dom.DOMCategory) {
    for( node in reader.getDomNodes( "//ns1:node" )) {
        node.children().each { child ->
            println child
        }
    }
}
Run Code Online (Sandbox Code Playgroud)