某些API会返回指向XML Document根目录的XmlCursor。我需要将所有这些插入到另一个org.w3c.DOM表示的文档中。
开始时:
XmlCursor poiting
<a>
<b>
some text
</b>
</a>
DOM文档:
<foo>
</foo>
最后我希望将原始DOM文档更改为:
<foo>
<someOtherInsertedElement>
<a>
<b>
some text
</b>
</a>
</someOtherInsertedElement>
</foo>
注意:document.importNode(cursor.getDomNode())
不起作用 - 抛出异常: NOT_SUPPORTED_ERR:实现不支持请求的对象或操作类型。
答案 0 :(得分:6)
尝试这样的事情:
Node originalNode = cursor.getDomNode();
Node importNode = document.importNode(originalNode.getFirstChild());
Node otherNode = document.createElement("someOtherInsertedElement");
otherNode.appendChild(importNode);
document.appendChild(otherNode);
换句话说:
导入的原因是节点始终“属于”给定的DOMDocument。只添加原始节点会导致异常。
答案 1 :(得分:1)
我遇到了同样的问题。
这是失败的:
Node importNode = document.importNode(originalNode);
这解决了问题:
Node importNode = document.importNode(originalNode.getFirstChild());