繁体   English   中英

使用Java DOM解析器将XML节点从文档复制到另一个文档

[英]Copying an XML node from a document to another document using Java DOM Parser

我一直在实现一种简单的算法,该算法可以解析XML文件并根据node中的属性值重新排序其节点。 我检索所有节点,并将整个节点插入经过排序的ArrayList中。 然后,我创建了一个新的XML文档,并创建了new和标签,但是当我尝试复制已排序的Node并将其附加到时,出现了一个异常,指出仍在另一个文档中使用。 我在用

Node sortedCnode= cNode.cloneNode(false); //tried true as well
b.appendChild(sortedCnode);

我认为我的代码试图将整个事实都追加。 但是,我不知道正确的方法

XML如下所示

<A>
  <B>
    <C>
      <D>
      </D>
      <E>
      </E>
    </C>
  </B>
</A>

我想到了

将节点从源DOM复制到目标DOM的方法如下

targetBNode.appendChild(targetDOC.adoptNode(sourceCnode.cloneNode(true)));

可以从Jherico获得更完整的答案: 如何在Java中将DOM节点从一个文档复制到另一个文档

总而言之,您需要:

  1. 复制节点
  2. 将副本导入目标文档
  3. 将副本放置在新文档中

Jherico提供了两种方法,一种使用cloneNode()和采用Node(),与接受的答案相同。 但是,存在通过在Document上使用importNode()来执行两种操作的快捷方法。

targetBNode.appendChild(targetDOC.importNode(sourceCnode, true));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM