org.w3c.dom.Document xml解析错误

时间:2013-01-16 04:32:40

标签: xml dom sax xerces

我正在使用apache xerces DOMParser和org.w3c.dom.Document来解析xml文档。 在尝试查找元素并设置一些文本内容时,没有抛出错误但是 setNodeValue(String)方法未向节点设置任何内容。节点是文本节点。 当我调试时,我看到像nextSibling或firstChild这样的属性是#text或\ n。 如何删除这些空格和#text?为什么setNodeValue()方法不起作用?

我还有一个问题: 如何使用名称空间getElementBytagName文档元素,例如“tns:result”?

以下xml:

<document xmlns:tns="....">
<header>
 <tns:username/>
</header>
</document>

document.getElementsByTagName( “TNS:用户名”)。项(0).setNodeValue( “你好”);

但在执行此操作后,结果xml仍然相同。

1 个答案:

答案 0 :(得分:0)

当节点类型为ELEMENT_NODE时(在您的情况下),调用setNodeValue(...)无效(请参阅Node#setNodeValue(String ...)的文档。您必须创建子文本节点。

对于您看到的文本节点,它们位于文档中。如果你删除它们,你就可以将所有标签放在一行上。处理XML时,您必须准备忽略无关紧要的空白。解析器无法为您执行此操作,因为它不知道哪个空格无关紧要。