我正在使用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仍然相同。
答案 0 :(得分:0)
当节点类型为ELEMENT_NODE
时(在您的情况下),调用setNodeValue(...)
无效(请参阅Node#setNodeValue(String ...)
的文档。您必须创建子文本节点。
对于您看到的文本节点,它们位于文档中。如果你删除它们,你就可以将所有标签放在一行上。处理XML时,您必须准备忽略无关紧要的空白。解析器无法为您执行此操作,因为它不知道您哪个空格无关紧要。