簡體   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