我希望使用XML-Holder迭代XML文件的节点。
def reader = groovyUtils.getXmlHolder(test1 );
让我们说XML如下所示:
<xml>
<node>
<val1/>
<val2/>
</node1>
<node>
<val1/>
<val2/>
</node2>
</xml>
我想读取不同节点的值。 (val1,val2)。 所以我试着这样:
for( node in reader.getNodeValues( "//ns1:node" ))
{}
它实际上遍历节点,但我不知道如何访问它们内部的值。
非常感谢你的帮助!
约翰
答案 0 :(得分:7)
而不是getNodeValues
,您可能想要调用getDomNodes
。这将返回类org.w3c.dom.Node
的标准Java DOM节点。从那里,您可以遍历从getFirstChild
开始的子节点并使用getNextSibling
进行迭代。 Groovy的DOMCategory添加了一些方便的辅助方法,使其不那么痛苦。
例如:
use (groovy.xml.dom.DOMCategory) {
for( node in reader.getDomNodes( "//ns1:node" )) {
node.children().each { child ->
println child
}
}
}