gen*_* b. 5 java xml dom nodelist
我有一个XML文件如下.
当我使用getElementsByTagName("LEVEL2_ID"),我得到一个NodeList有Nodes,但这些节点有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>
Run Code Online (Sandbox Code Playgroud)
在Java中,打印使用getElementsByTagName()获取的第一个节点的值将返回NULL:
NodeList nodes = document.getElementsByTagName("LEVEL2_ID");
System.out.println("Value of 1st node: " + nodes.item(0).getNodeValue());
Run Code Online (Sandbox Code Playgroud)
这在规范中定义.元素节点nodeValue是null.
nodeValuetypeDOMString:此节点的值,具体取决于其类型; 见上表.如果将其定义为null,则将其设置为无效.
如果要获取每个节点的文本内容,则必须遍历所有文本节点后代并连接它们的值.
也就是说,您正在使用的API实现可能提供一种方法来直接检索元素的文本内容.例如,PHP DOMNode有一个$textContent属性.
如果,在您的情况下,元素的唯一子节点实际上是您想要的文本节点,您只需访问其值:
element.getFirstChild().getNodeValue()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17187 次 |
| 最近记录: |