Ich habe auf einer JSP-Seite folgenden Code um eine XML-Datei zu erzeugen:
Das Ganze funktioniert soweit ja wunderbar. Da es aber nicht auf meinem Mist gewachsen ist, habe ich jetzt ein Problem wenn ich die JSP-Seite mehrmals aufrufe. Dann soll nicht jedesmal eine komplett neue Datei erzeugt werden, sondern der vorhandenen Datei sollen Elemente hinzugefügt werden.
Eine Möglichkeit wäre es sicherlich, alle bisherigen Einträge auszulesen und dann zusammen mit den neuen abzuspeichern. Das erscheint mir aber doch sehr umständlich und nicht wirklich performant. Gibt´s da nicht eine einfachere Möglichkeit um eine XML-Datei zu ergänzen ?
Code:
Document doc = new Document();
Element elRoot = new Element("umfragen");
Element elUmfrage = new Element("umfrage");
elUmfrage.setAttribute("email", (String) (session.getAttribute( "sEmail" )) );
elUmfrage.addContent((Element)new Element("vorname").addContent(new Text((String) (session.getAttribute( "sVorname" )))));
elUmfrage.addContent((Element)new Element("name").addContent(new Text((String) (session.getAttribute( "sName" )))));
elUmfrage.addContent((Element)new Element("bundesland").addContent(new Text((String) (session.getAttribute( "sBundesland" )))));
elUmfrage.addContent((Element)new Element("geschlecht").addContent(new Text((String) (session.getAttribute( "sGeschlecht" )))));
elUmfrage.addContent((Element)new Element("alter").addContent(new Text((String) (session.getAttribute( "sAlter" )))));
elRoot.addContent(elUmfrage);
doc.setRootElement(elRoot);
Format format = Format.getPrettyFormat();
format.setEncoding("iso-8859-1");
XMLOutputter xmlOut = new XMLOutputter(format);
xmlOut.output(doc, new FileOutputStream(getServletContext().getRealPath("details.xml")));
Das Ganze funktioniert soweit ja wunderbar. Da es aber nicht auf meinem Mist gewachsen ist, habe ich jetzt ein Problem wenn ich die JSP-Seite mehrmals aufrufe. Dann soll nicht jedesmal eine komplett neue Datei erzeugt werden, sondern der vorhandenen Datei sollen Elemente hinzugefügt werden.
Eine Möglichkeit wäre es sicherlich, alle bisherigen Einträge auszulesen und dann zusammen mit den neuen abzuspeichern. Das erscheint mir aber doch sehr umständlich und nicht wirklich performant. Gibt´s da nicht eine einfachere Möglichkeit um eine XML-Datei zu ergänzen ?