我一直在实现一个简单的算法,该算法解析XML文件并根据节点中的属性值来求助其节点。我检索所有节点并将整个节点插入到已排序的ArrayList中。然后我创建了一个新的XML文档并创建了新的标签,但是当我尝试复制已排序的节点并将其追加到时,一个异常表明它仍在另一个文档中使用。我正在使用
Node sortedCnode= cNode.cloneNode(false); //tried true as well
b.appendChild(sortedCnode);
我认为我的代码试图追加全部真实。但是,我不知道这样做的正确方法
XML如下所示
<A>
<B>
<C>
<D>
</D>
<E>
</E>
</C>
</B>
</A>
答案 0 :(得分:1)
我想通了
应该使用将源DOM中的节点复制到目标DOM
targetBNode.appendChild(targetDOC.adoptNode(sourceCnode.cloneNode(true)));
答案 1 :(得分:0)
Jherico提供了更完整的答案:How do I copy DOM nodes from one document to another in Java。
总结一下,您需要:
Jherico提供了两种方法,一种使用cloneNode()和adoptNode(),它与接受的答案相同。但是,在Document上使用importNode()存在一种快捷方法,它可以为您执行这两种操作。
targetBNode.appendChild(targetDOC.importNode(sourceCnode, true));