使用java在XML中添加新节点

时间:2015-11-02 16:08:25

标签: java xml xml-parsing

我正在使用DOM解析器处理XML文件,我正在将一个xml文件中的整个数据复制到另一个xml文件中,并改变某些节点的值。

我的XML文件如下所示:

 <ems:DeterminationRequest>
    <ems:MessageInformation>
    .........
    </ems:MessageInformation>
    <ems:case>
       <ns17:CalHEERSCaseInfo> ... </ns17:CalHEERSCaseInfo>
       <ns17:persons> ..... </ns17:persons>
    </ems:case>
 </ems:DeterminationRequest>

现在我想将子节点添加到&#39; ems:DeterminationRequest&#39;它有其他子节点。

链接已添加新节点:link1link2

我知道如何使用以下语法将子节点添加到父节点:

....
Document doc = db.parse(new FileInputStream(new File("in.xml")));
Element element = doc.getDocumentElement();
Node node = doc.createElement("ns17:CaseReferals");
element.appendChild(node);
.....

但我想添加以下节点语法:

 <ns17:CaseReferrals >
        <ns17:OtherProgramInformationRequest>
            <ns17:CHDPInfoInd></ns17:CHDPInfoInd>
            <ns17:WICInfoInd></ns17:WICInfoInd>
            <ns17:FamilyPACTInfoInd></ns17:FamilyPACTInfoInd>
            <ns17:SHOPInfoInd></ns17:SHOPInfoInd>
            <ns17:EPSDTInfoInd></ns17:EPSDTInfoInd>
            <ns17:VoterRegistrationInfoInd></ns17:VoterRegistrationInfoInd>
            <ns17:PCSPInfoInd></ns17:PCSPInfoInd>
        </ns17:OtherProgramInformationRequest>
 </ns17:CaseReferrals>

那么我们可以通过哪种方式创建上述语法字符串并将ad作为子节点创建父节点吗?

1 个答案:

答案 0 :(得分:1)

一次一个元素。

Document doc = db.parse(new FileInputStream(new File("in.xml")));
Element documentElement= doc.getDocumentElement();
Node ns17CaseReferals= doc.createElement("ns17:CaseReferals");
documentElement.appendChild(ns17CaseReferals);
Node ns17CHDPInfoInd = doc.createElement("ns17:CHDPInfoInd");
ns17CaseReferals.appendChild(ns17CHDPInfoInd);

等等(可能会重复添加具有给定名称的空子元素的重复操作机会)。

否则,只需将文本解析为XML文档即可获取DOM节点。