dom4j-Problem

Hallo,
mit dem Package dom4j lese ich eine kleine XML-Datei ein. So bekomme ich ein Objekt vom Typ document:

URL url = new URL(strURL);
SAXReader reader = new SAXReader();
document = reader.read(url);

Dann hole ich mir das Root-Element und hänge noch ein paar neue Elemente hinten dran:

Element elemRoot = document.getRootElement();
Element elem1 = elemRoot.addElement(„elem1“);
Element elem2 = elem1.addElement(„elem2“);
elem2.addText(„elem2text“);
Element elem3 = elem1.addElement(„elem3“);
elem3.addText(„elem3text“);

Soweit so gut.

Jetzt schreibe ich das File wieder auf die Platte:

OutputFormat outputFormat = new OutputFormat(" ", true);
outputFormat.setEncoding(„iso-8859-1“);
OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream( path ), „iso-8859-1“ );
XMLWriter writer = new XMLWriter( osw , outputFormat );

Wenn ich mir jetzt das XML-File ansehe, ist bei dem Teil des Dokumentes, der vom File gelesen wurde immer eine leerzeile zwischen den einzelnen Zeilen. Bei den letzten Elementen, die ich angefügt habe aber nicht. Wie kann ich das abstellen? Kennt jemand das Problem?

Gruß
Jodus

Hi nochmal, eine Zeile fehlt noch am Schluß:

XMLWriter writer = new XMLWriter( osw , outputFormat );

writer.write( doc );

Gruß
Jodus

Hi Jodus -

Schau dir mal den Konstruktor der Klasse XMLWriter an - Da kannst du ein Objekt der Klasse OutputFormat mitgeben - Vielleicht bringt das herumprobieren mit dem Outputformat was.

Ich arbeite auch grad mit Dom4j - benutze es zur Zeit aber nur lesender Weise. Beim herumprobieren wäre mir die doppelte Zeilenschaltung baer nicht aufgefallen…

mfG,

J.P.Jarolim

Hallo,
das mit dem Outputformat hab ich schon drin. Da kann man einen boolschen Parameter angeben, ob vor jedem Element eine Zeilenschaltung eingefügt werden soll, so wie ich das verstanden hab.
Wenn ich hier true angebe siehts aus wie oben beschrieben (Im oberen, gelesenen Teil Leerzeilen, bei den hinzugefügten Elementen nicht). Wenn ich false übergebe passt der obere Teil und die hinzugefügten Elemente stehen alle in einer Zeile…
Irgendwie ne seltsame Sache.
Gruß
Jodus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Jetzt klappts !
Hallo nochmal,
jetzt klappt die Sache. Ich habe die Zeile
OutputFormat outputFormat = new OutputFormat(" ", true);
durch die Zeile
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
ersetzt. Jetzt sind die Leerzeilen weg.
Gruß
Jodus