在应用程序使用DOM、Java运行时刷新XML文件
我正在开发一个使用XML和DOM的应用程序。我正在从文件中写入和读取数据。两者都可以工作,但问题是,文件在应用程序关闭后首先实现。 在阅读时,我使用以下方法:在应用程序使用DOM、Java运行时刷新XML文件,java,xml,dom,Java,Xml,Dom,我正在开发一个使用XML和DOM的应用程序。我正在从文件中写入和读取数据。两者都可以工作,但问题是,文件在应用程序关闭后首先实现。 在阅读时,我使用以下方法: try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
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您的意思是如何将节点
插入现有文档中?不,不完全是,但我发现了我的错误。这只是一个对象的问题,它不能直接处理文件,但是。如果你找到了答案,你介意把它贴在这里吗?这样这个问题就可以解决了,将来可能会对其他人有所帮助。