【问题标题】:XML DOM -- Reading two nodes on the same limeXML DOM——读取同一时间的两个节点
【发布时间】:2021-03-06 23:07:22
【问题描述】:

我正在使用具有如下树的 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 做到这一点,但是当它们在同一行时我该怎么做呢?

换句话说: 如何访问所需的属性?

【问题讨论】:

  • 您的示例数据中没有value33
  • 另外,在这种情况下,您是否也尝试过getChildNodes? XML 规范没有规定元素必须从新行开始才能成为子元素。
  • @choroba 我有,但它不起作用,我可以手动将它们移动到 XML 文件中的新行,然后 getChildNodes 工作,但不是目前的样子
  • item1 是您的预期输出吗?
  • 你使用什么语言和解析器?

标签: xml dom xml-parsing


【解决方案1】:

我仍然不知道为什么会发生这种情况,但是一旦我删除然后重新下载 XML 文档 getChildNodes 在这种情况下运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多