私は以下のような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>
です。私がここで紛失しているものアドバイスをお願いします。前もって感謝します。
こんにちはミカエルは、私の編集部分を参照してください。 –
スニペットが機能しました。残念ながら、新しい要素をファイルに書き込んでいないのではなく、ターミナルコンソールに印刷していただけです。混乱させて申し訳ありません。 :) –