我正在浏览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
节点中的值实际上是什么?如果我想为元素节点设置一个值,我该怎么做?请解释一下。
答案 0 :(得分:3)
Element节点的值总是 null 。请参阅Node documentation以获取预期值列表。
这最终来自W3C DOM level 3 design。
答案 1 :(得分:0)
使用Node.getChildNodes()。将“值”映射到相同的子节点将是双重的。这是一个尴尬的API,要设置一个必须删除所有子项的值,并调用appendChild或者替换/插入。
丑陋,但w3c早于Java,并且不知何故很不错,Java通过采用来尊重w3c.org。