用于将新元素插入内部子节点的Java代码

时间:2016-08-19 09:36:55

标签: java xml xml-parsing

我有一个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>的子节点。我在这里失踪了什么。请给出建议。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应该在firstElementChild节点上使用此方法: