Mein erstes mal mit JDOM, stehe auf dem Schlauch

jeipack

Erfahrenes Mitglied
Hi
Wie im Titel erwähnt arbeite ich gerade mit JDOM. Also hab ich mir mal ein paar Sachen zusammengebastelt und alles funktionierte.

Folgende Klasse gibt mir das root-Element eines existierenden XML zurück (funktioniert auch). Nun wollte ich es noch erweitern und falls das File nicht vorhanden ist ein neues File erzeugen (Aufruf der Funktion writeXML). Was auch funktioniert. Nur rufe ich die Funktion writeXML später nochmmals auf und bekomme da folgende Meldung:
The element "PROPERTIES" could not be added as the root of the document: The Content already has an existing parent document


Java:
Element getRootEle() throws IOException, JDOMException {
        //gibt das rootElement des XMLs zurück
        Element root = null;
        SAXBuilder saxbuild = new SAXBuilder();
        File tester = new File(".\\config\\properties.config");
        //falls das File nicht exisitert
        if(!tester.isFile()) {
            //schreibe ein neues File
            root = new Element("PROPERTIES") ;
            writeXML(root);
        } else {
            InputSource is = new InputSource(".\\config\\properties.config");
            Document doc = saxbuild.build(is);
            root = doc.getRootElement();
        }
        return root;
}


Hier noch die Funktion writeXML
Java:
    void writeXML(Element root) {
        //schreibt das XML File
        XMLOutputter outputter = new XMLOutputter();
        //damit er Umbrüche macht:
        outputter.setFormat(Format.getPrettyFormat());
        try {
            FileOutputStream output = new FileOutputStream(".\\config\\properties.config");
            outputter.output(new Document(root), output);
            output.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

edit: Merke gerade, dass der Fehler immer auftritt wenn die Funktion writeXML ein zweites mal aufgerufen wird. Müsste ich denn da nicht das root-Element übergeben sondern das doc-Document?
Allgemein hätte ich gerne eine Funktion die ich mehrfach aufrufen kann und die mir jeweils das ganze XML speichert.

Vielen Dank schonmal für eure Hilfe
jeipack
 
Oke.. blöder Fehler.
Ich habe ja überall das root-Element übergeben und das nun mit dem Document-Objekt gemacht. Nun klappts.
 
Zurück