2016-08-19 4 views
0

私は以下のようなXML文書を持っています。新しい要素を内部の子ノードに挿入するJavaコード

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

今、私は私の最後のXML文書は以下のようになりますように、このXMLドキュメントに、子ノード、<child3>C</child3>を追加する必要があります。

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

これにはJavaコードが必要です。 googleを検索したところ、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> 

及びIは

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

、下記の修正を加えて再度コードを実行したときに3番目の子ノード<child3>C</child3>第四子<child4>D</child4>に置き換えつつあります。私が必要とするのは、子ノードを段階的に追加することです。<firstElementChild>です。私がここで紛失しているものアドバイスをお願いします。前もって感謝します。

答えて

1

あなたfirstElementChildノードでこのメソッドを使用する必要があります。

+0

こんにちはミカエルは、私の編集部分を参照してください。 –

+0

スニペットが機能しました。残念ながら、新しい要素をファイルに書き込んでいないのではなく、ターミナルコンソールに印刷していただけです。混乱させて申し訳ありません。 :) –

関連する問題