在我的应用程序中,我想将一个节点从一个文档复制到另一个文档。
这是代码。
Element entryElement, operationElement;
for (int i = 0; i < eventList.getLength(); i++) {
entryElement = (Element) eventList.item(i);
gsTag = entryElement.getAttribute("gs_tag");
System.out.println(gsTag);
if (gsTag.equals("insert") || gsTag.equals("update") || gsTag.equals("delete")) {
entryElement = (Element) entryElement.cloneNode(true);
rootElement.appendChild(entryElement);
operationElement = syncDom.createElement("batch:operation");
entryElement.appendChild(operationElement);
operationElement.setAttribute("type", gsTag);
}
}
当执行rootElement.appendChild(entryElement);
时发生了这种情况,我检查了异常的代码是4.在java API中,这段代码意味着一个元素只能属于一个文档,但我确实已经克隆了该节点。为什么会这样?
答案 0 :(得分:2)
克隆节点不会更改它所属的文档,因为它是节点的完全副本。要将节点添加到其他文档,您需要使用Document的“importNode”方法让目标文档“采用”它: