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

mow*_*nay 3 java dom xml-parsing

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

Node sortedCnode= cNode.cloneNode(false); //tried true as well
b.appendChild(sortedCnode);
Run Code Online (Sandbox Code Playgroud)

我认为我的代码正在尝试附加整个 true. 但是,我不知道正确的方法

XML 如下所示

<A>
  <B>
    <C>
      <D>
      </D>
      <E>
      </E>
    </C>
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

mow*_*nay 6

我想到了

应该使用下面的方法将节点从源 DOM 复制到目标 DOM

targetBNode.appendChild(targetDOC.adoptNode(sourceCnode.cloneNode(true)));
Run Code Online (Sandbox Code Playgroud)