XML DOM -- 读取同一 lime 上的两个节点

XML DOM -- Reading two nodes on the same lime

提问人:James 提问时间:3/7/2021 最后编辑:James 更新时间:3/11/2021 访问量:38

问:

我正在使用 dom 遍历一个 XML 文档,该文档具有如下树:

<value>
      <value2 number="3"><value3 needed="item1"/></value2>
      <value2 number="2"><value3 needed="item2"/></value2>
      <value2 number="1"><value3 needed="item3"/></value2>
</value>

我有

NodeList value = aboveNodes.getChildNodes();
for(int i = 0; i < value.getLength(); i++) {
   Node value2 = value.item(i);
}

我正在尝试访问 value3,以便获得所需的属性。 但是,我不确定如何做到这一点。

如果 XML 文档的格式化,则值位于单独的行上,即。

<value2 number="3">
   <value3 needed="item1"/>
</value2>

我知道我可以用 getChildNodes 做到这一点,但是当它们在同一条线上时,我该怎么做?

换句话说:我如何获得所需的属性?

dom xml 解析

评论

0赞 choroba 3/7/2021
示例数据中没有。value33
1赞 choroba 3/7/2021
另外,你也试过这种情况吗?XML 规范并没有说元素必须从新行开始才能成为子元素。getChildNodes
0赞 James 3/7/2021
@choroba我有并且它不起作用,我可以手动将它们移动到 XML 文件中的新行,然后 getChildNodes 可以工作,但不是目前的样子
0赞 Jack Fleeting 3/7/2021
您的预期产出是多少?item1
0赞 choroba 3/7/2021
你使用什么语言和解析器?

答:

0赞 James 3/11/2021 #1

我仍然不知道为什么会发生这种情况,但是一旦我删除并重新下载了 XML 文档,getChildNodes 在这种情况下工作正常。