# XML Newlines entfernen



## virgie (4. Jan 2005)

hallo,

ich habe eine xml datei, die in einer schönen baumstruktur mit eingerückten childrens etc. abgebildet ist.
wenn ich jetze dem dokument ein neues child hinzufuege, wird dieses lieblos einfach unten rechts neben dem letzten element angefügt. ich würde dieses child aber gerne in eine neue reihe und eingerückt (falls nötig) haben.
das problem ist ja, das man erst beim xml outputter sagen kann, dass jedes element eine neue reihe bekommt und die childs eingerückt werden sollen. mache ich dies nachdem ich ein neues element eingefügt habe bekommt zwar das neue element eine neue zeile, aber die schon vorhandenen elemente bekommen auch noch eine neue zusätzliche reihe, quasi jedesmal wenn ich abspeicher zieht sich die xml weiter und weiter auseinander...
auch scheiße ist es ja, wenn man ein element entfernt, dann bleibt ja eine leerzeile zurück.

nun habe ich versucht beim einlesen die ganze baumformatierung zu entfernen, sodass alle elemente hintereinander geklatscht werden, sodass ich beim abspeichern wieder meine baumstruktur ohne freizeilen erstellen kann.
oder gibt es eine funktion/einstellung, die freizeilen in der xml entfernt?

thx a lot


----------



## virgie (6. Jan 2005)

ok, schon erledigt, wer es wissen will:

++++++


```
XMLOutputter out = new XMLOutputter();    

// encoding (wichtig fuer umlaute)
out.setEncoding("iso-8859-1");    

// entfernt alle breaks und leerräume
out.setTrimAllWhite(true);

// setzt einrückeabstand bei childrens
out.setIndent("   ");

// neue line bei neuem element
out.setNewlines(true);

// file writer mit url als string
FileWriter writer = new FileWriter(this.url);

// xml wird geschrieben
out.output(this.domDocument, writer);     

// writer schließen      
writer.close();
```

+++++++

bevor nun das bearbeitete unschoene dom document gespeichert wird, werden alle vorgänge (encoding, trim, indent, newline) ausgefuehrt...und voila, ne schöne xml ensteht...

danke an alle, die wenigsten meinen hilfebeitrag gelesen haben bzw. versucht haben zu helfen, bis demnächst....

virgie


----------



## bummerland (6. Jan 2005)

wäre folgendes nich auch gegangen:

```
...
out.setFormat(Format.getPrettyFormat());
...
```
 ?


----------



## virgie (14. Jan 2005)

tjoa, vielleicht, habs jetzt nicht ausprobier, aber wenn du es ausprobiert hast, wahrscheinlich schon....

aber die funktion wird wahrscheinlich das implementieren, was ich weiter oben auch geproggt habe ;-)))


----------



## virgie (20. Jan 2005)

hallo, ich nochmal, ich bin jetzt erst dazu gekommen deinen (becstift) vorschlag mal auszuprobieren...und na ja, out.setFormat(..) gibt es gar nicht bei jdom.xmloutputter, ich weiß ja nicht mit welcher version du arbeitest, aber mit meiner gehts net (version 1.0beta9)

aber trotzdem danke, virgie


----------



## bummerland (20. Jan 2005)

hmm, dann hast du wohl ne alte version. 
guckst du hier: http://www.jdom.org/docs/apidocs/org/jdom/output/XMLOutputter.html#setFormat(org.jdom.output.Format)


----------

