我想用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)
它真的遍历节点,但我不知道如何访问它们内部的值.
非常感谢你的帮助!
约翰
而不是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)