加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy使用XMLHolder迭代节点

发布时间:2020-12-14 16:23:13 所属栏目:大数据 来源:网络整理
导读:我想用 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.getNo
我想用 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" ))
{}

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

非常感谢你的帮助!

约翰

解决方法

您可能希望调用getDomNodes而不是getNodeValues.这将返回类 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
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读