某些 API 返回指向 XML 文档根的 XmlCursor。我需要将所有这些插入到另一个 org.w3c.DOM 表示的文档中。

开始时:Xml光标指向

<a> <b> some text </b> </a>

DOM 文档:

<富>

</foo>

最后我想将原始 DOM 文档更改如下:

<富>

<一些其他插入元素>

u003Ca>u003Cb>一些文字u003C/b>u003C/a>

</someOtherInsertedElement>

</foo>

笔记: document.importNode(cursor.getDomNode()) 不起作用 - 抛出异常: 不支持错误:该实现不支持请求的对象或操作类型。

有帮助吗?

解决方案

尝试这样的事情:

Node originalNode = cursor.getDomNode();
Node importNode = document.importNode(originalNode.getFirstChild());
Node otherNode = document.createElement("someOtherInsertedElement");
otherNode.appendChild(importNode);
document.appendChild(otherNode);

换句话说:

  1. 从光标处获取 DOM 节点。在本例中,它是一个 DOMDocument,因此使用 getFirstChild() 来获取根节点。
  2. 将其导入 DOMDocument。
  3. 使用 DOMDocument 执行其他操作。
  4. 将导入的节点追加到右侧节点。

导入的原因是节点总是“属于”给定的 DOMDocument。仅添加原始节点会导致异常。

其他提示

我也有同样的问题。

这是失败的:

Node importNode = document.importNode(originalNode);

这解决了问题:

Node importNode = document.importNode(originalNode.getFirstChild());

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top