我有一个XML文档,如下所示。
<rootElement>
<fisrtElement>
<firstElementChild>
<child1>A</child1>
<child2>B</child2>
</firstElementChild>
</fisrtElement>
</rootElement>
现在我需要在这个XML文档中添加一个子节点<child3>C</child3>
,这样我的最终XML文档将如下所示。
<rootElement>
<fisrtElement>
<firstElementChild>
<child1>A</child1>
<child2>B</child2>
<child3>C</child3>
</firstElementChild>
</fisrtElement>
</rootElement>
我需要一个Java代码。我搜索了谷歌,现在我知道如何使用DocumentBuilderFactory
向根元素添加元素。但我不知道如上所述如何为内部节点做这件事。请指教。
修改
我已经尝试了下面的代码片段来添加新元素。
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>
的子节点。我在这里失踪了什么。请给出建议。提前谢谢。
答案 0 :(得分:1)
您应该在firstElementChild
节点上使用此方法: