如何将XmlCursor内容插入DOM文档
时间:2020-03-05 18:58:53 来源:igfitidea点击:
一些API返回XmlCursor指向XML文档的根。我需要将所有这些内容插入另一个org.w3c.DOM表示的文档中。
开始时:
XmlCursor poiting上
`
<a>
<b>
一些文字
</ b>
</a>
`
DOM文件:
`
<foo>
</ foo>
`
最后,我想更改原始DOM文档,如下所示:
`
<foo>
<someOtherInsertedElement>
<a>
<b>
一些文字
</ b>
</a>
</ someOtherInsertedElement>
</ foo>
`
注意:document.importNode(cursor.getDomNode())
不起作用抛出异常:NOT_SUPPORTED_ERR:实现不支持所请求的对象或者操作类型。
解决方案
回答
尝试这样的事情:
Node originalNode = cursor.getDomNode(); Node importNode = document.importNode(originalNode.getFirstChild()); Node otherNode = document.createElement("someOtherInsertedElement"); otherNode.appendChild(importNode); document.appendChild(otherNode);
因此,换句话说:
- 从光标获取DOM节点。在这种情况下,它是一个DOMDocument,所以getFirstChild()也要获取根节点。
- 将其导入到DOMDocument中。
- 使用DOMDocument做其他事情。
- 将导入的节点添加到正确的节点。
导入的原因是节点始终"属于"给定的DOMDocument。仅添加原始节点将导致异常。