2016-08-19 50 views
0

我有一個XML文檔,如下所示。將新元素插入內部子節點的Java代碼

<rootElement> 
    <fisrtElement> 
     <firstElementChild> 
      <child1>A</child1> 
      <child2>B</child2> 
     </firstElementChild> 
    </fisrtElement> 
</rootElement> 

現在我需要添加一個子節點,<child3>C</child3>,這個XML文檔,使我最終的XML文檔看起來像下面。

<rootElement> 
    <fisrtElement> 
     <firstElementChild> 
      <child1>A</child1> 
      <child2>B</child2> 
      <child3>C</child3> 
     </firstElementChild> 
    </fisrtElement> 
</rootElement> 

我需要一個Java代碼。我搜索了谷歌,現在我知道如何使用DocumentBuilderFactory向根元素添加元素。但是我沒有如上面給出的那樣去做內節點。請指教。

編輯

我曾嘗試以下snippent添加新的元素。

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse(new File("./sample.xml")); 

Element itemNode = doc.createElement("child3"); 
itemNode.appendChild(doc.createTextNode("C")); 
Node channelNode = doc.getElementsByTagName("channel").item(0); 
channelNode.appendChild(itemNode); 

並且輸出如下所示。

<rootElement> 
    <fisrtElement> 
     <firstElementChild> 
      <child1>A</child1> 
      <child2>B</child2> 
      <child3>c</child3> 
     </firstElementChild> 
    </fisrtElement> 
</rootElement> 

,當我用下面給出的修改再次運行代碼,

Element itemNode = doc.createElement("child4"); 
itemNode.appendChild(doc.createTextNode("D")); 

第三子節點<child3>C</child3>是越來越有第四個孩子<child4>D</child4>取代。我需要的是增量添加子節點<firstElementChild>。我在這裏錯過了什麼。請給出建議。提前致謝。

回答