Groovy 使用 XMLHolder 迭代节点
我想使用 XML-Holder 迭代 XML 文件的节点。
def reader = groovyUtils.getXmlHolder(test1 );
假设 XML 如下所示:
<xml>
<node>
<val1/>
<val2/>
</node1>
<node>
<val1/>
<val2/>
</node2>
</xml>
我想从不同的节点读取值。 (值1,值2)。 所以我尝试这样做:
for( node in reader.getNodeValues( "//ns1:node" ))
{}
它确实遍历节点,但我不知道如何访问它们内部的值。
非常感谢您的帮助!
约翰
i want to Iterate over Nodes of an XML-File with the XML-Holder.
def reader = groovyUtils.getXmlHolder(test1 );
let's say the XML looks like the following:
<xml>
<node>
<val1/>
<val2/>
</node1>
<node>
<val1/>
<val2/>
</node2>
</xml>
i want to read the values from the different nodes. (val1, val2).
So i tried like that:
for( node in reader.getNodeValues( "//ns1:node" ))
{}
It really iterates over the nodes, but i don't know how the get access to the values inside them.
Thanks a lot for your help!
john
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能希望调用
getDomNodes
,而不是getNodeValues
。这将返回类 的标准 Java DOM 节点org.w3c.dom.Node
。从那里,您可以从getFirstChild
开始遍历子节点,并使用getNextSibling
进行迭代。 Groovy 的 DOMCategory 添加了一些方便的帮助器减轻痛苦的方法。例如:
Instead of
getNodeValues
, you probably want to callgetDomNodes
instead. That will return you standard Java DOM nodes of classorg.w3c.dom.Node
. From there you can traverse the child nodes starting withgetFirstChild
and iterating withgetNextSibling
. Groovy's DOMCategory adds some convenient helper methods that make it much less painful.For example: