gpt4 book ai didi

java - DOM getElementsByTagName() 返回具有 NULL 值的节点

转载 作者:数据小太阳 更新时间:2023-10-29 01:53:50 24 4
gpt4 key购买 nike

我有一个 XML 文件如下。

当我使用 getElementsByTagName("LEVEL2_ID") 时,我确实得到了一个带有 NodesNodeList,但是那些节点有 NULL 值(在换句话说,每个结果节点上的 getNodeValue() 将返回 NULL)。为什么是这样?我需要获取每个节点的内容值,在本例中为 2000

XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
<Date>01/17/2012</Date>
<LEVEL1>
<LEVEL1_ID>1000</LEVEL1_ID>

<LEVEL2>
<LEVEL2_ID>2000</LEVEL2_ID>
</LEVEL2>
</LEVEL1>
</Root>

在 Java 中,打印通过 getElementsByTagName() 获得的第一个节点的 Value 返回 NULL:

NodeList nodes = document.getElementsByTagName("LEVEL2_ID");

System.out.println("Value of 1st node: " + nodes.item(0).getNodeValue());

最佳答案

That is defined in the specification .元素节点的 nodeValuenull

nodeValue of type DOMString: The value of this node, depending on its type; see the table above. When it is defined to be null, setting it has no effect.

如果要获取每个节点的文本内容,则必须遍历所有文本节点后代并将它们的值连接起来。

也就是说,您正在使用的 API 实现可能会提供一种方法来直接检索元素的文本内容。例如,PHP 的 DOMNode 有一个 $textContent属性(property)。

如果像您的情况一样,元素的唯一子节点实际上是您想要的文本节点,您可以简单地访问它的值:

element.getFirstChild().getNodeValue()

关于java - DOM getElementsByTagName() 返回具有 NULL 值的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8930921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com