Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在应用程序使用DOM、Java运行时刷新XML文件_Java_Xml_Dom - Fatal编程技术网

在应用程序使用DOM、Java运行时刷新XML文件

在应用程序使用DOM、Java运行时刷新XML文件,java,xml,dom,Java,Xml,Dom,我正在开发一个使用XML和DOM的应用程序。我正在从文件中写入和读取数据。两者都可以工作,但问题是,文件在应用程序关闭后首先实现。 在阅读时,我使用以下方法: try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

我正在开发一个使用XML和DOM的应用程序。我正在从文件中写入和读取数据。两者都可以工作,但问题是,文件在应用程序关闭后首先实现。 在阅读时,我使用以下方法:

        try {

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        File inputFile = new File("calendar.xml");
        doc = dBuilder.parse(inputFile);
        doc.getDocumentElement().normalize();
        System.out.println("File read in!");
        System.out.println("-----------------------------");
        users = doc.getElementsByTagName("user");
    } catch (Exception e) {
        e.printStackTrace();
    }
        try {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("calendar.xml"));
        transformer.transform(source, result);
    }catch (Exception e){}
在写日期时,我使用以下内容:

        try {

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        File inputFile = new File("calendar.xml");
        doc = dBuilder.parse(inputFile);
        doc.getDocumentElement().normalize();
        System.out.println("File read in!");
        System.out.println("-----------------------------");
        users = doc.getElementsByTagName("user");
    } catch (Exception e) {
        e.printStackTrace();
    }
        try {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("calendar.xml"));
        transformer.transform(source, result);
    }catch (Exception e){}
实际上这两种方法都有效,但我不知道如何在应用程序运行时刷新XML文件,以便读取更改

因此,如果我得到这个例子:

<root>
<child id="1"/>
<child id="2/">
</root>

然后我添加了一个id为“3”的新子项,它将保持以下状态:

<root>
<child id="1"/>
<child id="2/">
</root>

完成后的第一个文件是:

<root>
<child id="1"/>
<child id="2/">
<child id="3"/>
</root>

但我希望在应用程序运行时得到最后一个结果

帮助会很好:)
Reiswaffl

您的意思是如何将节点
插入现有文档中?不,不完全是,但我发现了我的错误。这只是一个对象的问题,它不能直接处理文件,但是。如果你找到了答案,你介意把它贴在这里吗?这样这个问题就可以解决了,将来可能会对其他人有所帮助。