目前我正在通过以下方式向文档添加命名空间:
node.getOwnerDocument().getDocumentElement()
.setAttribute("xmlns:" + prefix, namespaceURI);
这种方法的问题在于......
node.lookupPrefix(namespaceURI);
仍会返回null
。
另一种尝试:
node.getOwnerDocument().getDocumentElement()
.setAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, prefix, namespaceURI);
最终导致:
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
有办法吗?
答案 0 :(得分:1)
第二次尝试是迈向正确方向的一步。缺少的部分(异常的原因)是您必须在属性中包含xmlns
。所以" ns1"是无效的但是" xmlns:ns1"是
(您可以将常量用于字符串" xmlns"用于美容点)。
node.getOwnerDocument().getDocumentElement().setAttributeNS(
XMLConstants.XMLNS_ATTRIBUTE_NS_URI,
XMLConstants.XMLNS_ATTRIBUTE + ":" + prefix,
namespaceURI);