使用DocumentBuilderFactory将节点附加到现有xml - Java

时间:2020-12-01 14:05:33

Java - I formed this current XML using Java DocumentBuilderFactory.

Java - 我使用Java DocumentBuilderFactory构建了当前的XML。

<server>
<excludeList>
    <exclude>.ear</exclude>
    <exclude>.war</exclude>
    <exclude>.tar</exclude>
</excludeList>

I want the below new nodes to be added to my New XML using Java DocumentBuilderFactory:

我希望使用Java DocumentBuilderFactory将以下新节点添加到我的新XML中:

<server>
<excludeList>
    <exclude>.ear</exclude>
    <exclude>.war</exclude>
    <exclude>.tar</exclude>
    <exclude>.txt</exclude>
    <exclude>apps\third_party\activator</exclude>
    <exclude>apps\temp</exclude>
    <exclude>apps\xender</exclude>
</excludeList>

1 个解决方案

#1


0  

Try dis:

public class Test
{
    public static void main(String argv[]) {

       try {
        String filepath = "c:\\file.xml";
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(filepath);

        // Get the root element
        Node server = doc.getFirstChild();

        // Get the excludeList element by tag name directly
        Node excludeList = doc.getElementsByTagName("excludeList").item(0);


        // append a new node to excludeList
        Element exclude = doc.createElement("exclude");
        excludeList.appendChild(doc.createTextNode("apps\\temp"));

        // write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File(filepath));
        transformer.transform(source, result);

        System.out.println("Done");

       } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
    }
}

#1


0  

Try dis:

public class Test
{
    public static void main(String argv[]) {

       try {
        String filepath = "c:\\file.xml";
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(filepath);

        // Get the root element
        Node server = doc.getFirstChild();

        // Get the excludeList element by tag name directly
        Node excludeList = doc.getElementsByTagName("excludeList").item(0);


        // append a new node to excludeList
        Element exclude = doc.createElement("exclude");
        excludeList.appendChild(doc.createTextNode("apps\\temp"));

        // write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File(filepath));
        transformer.transform(source, result);

        System.out.println("Done");

       } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
    }
}