DOM解析澄清

时间:2013-12-17 10:29:59

标签: java dom xmlnode jaxp

我正在浏览JAXP DOM路径,其中有一个DOM混合内容模型,如下所示

<sentence>This is an <bold>important</bold> idea.</sentence>

已经解释如下

注意 - DOM Node API定义了nodeValue(),nodeType()和nodeName()方法。对于第一个元素节点,nodeName()返回句子,而nodeValue()返回 null 。对于第一个文本节点,nodeName()返回#text,nodeValue()返回“This is an”。重要的是元素的值与其内容不同。

我的问题是getNodeValue()节点上调用的Element返回 null 的原因。应该有什么? Element节点中的实际上是什么?如果我想为元素节点设置一个值,我该怎么做?请解释一下。

2 个答案:

答案 0 :(得分:3)

Element节点的值总是 null 。请参阅Node documentation以获取预期值列表。

这最终来自W3C DOM level 3 design

答案 1 :(得分:0)

使用Node.getChildNodes()。将“值”映射到相同的子节点将是双重的。这是一个尴尬的API,要设置一个必须删除所有子项的值,并调用appendChild或者替换/插入。

丑陋,但w3c早于Java,并且不知何故很不错,Java通过采用来尊重w3c.org。