Como você atualiza instantaneamente um documento XML depois de adicionar um nó a ele?
Então, estou criando um programa de calendário e preciso atualizá-lo quando você adiciona uma nova entrada a ele. No momento, preciso clicar no arquivo xml para atualizá-lo, e tudo o resto funciona bem.
Declaração:
private DocumentBuilderFactory documentFactory;
private DocumentBuilder documentBuilder;
private Document xmlDoc;
private Node rootNode;
private static Node dataNode;
Atribuição no construtor:
try {
documentFactory = DocumentBuilderFactory.newInstance();
documentBuilder = documentFactory.newDocumentBuilder();
xmlDoc = documentBuilder.parse(Main.class.getResourceAsStream("Calendar.xml"));
rootNode = xmlDoc.getDocumentElement();
dataNode = rootNode.getChildNodes().item(0);
} catch(ParserConfigurationException | SAXException | IOException e) {e.printStackTrace(System.out);}
O nó é criado e adicionado adataNode
depois que um botão é pressionado, o arquivo é atualizado assim:
try {
OutputFormat outFormat = new OutputFormat(xmlDoc);
try (FileOutputStream outStream = new FileOutputStream("src/virtualagenda/Calendar.xml")) {
XMLSerializer serializer = new XMLSerializer(outStream, outFormat);
serializer.serialize(xmlDoc);
outStream.flush();
outStream.close();
}
}catch(IOException e) {e.printStackTrace(System.out);}