XML mit DOM schreiben

UkAtZ

Mitglied
Hallo zusammen,

ich habe folgendes Problem:

Ich schreibe eine XML-Datei mittels DOM. Das funktioniert auch einwandfrei Nur wenn ich die Datei mit einem Editor öffne, steht alles in einer Zeile, was die ganze Sache schwer lesbar macht.
Gibt es eine Möglichkeit einen Zeilenumbruch oder andere Formatierungen wie Tabs mit DOM zu schreiben? Andere XML-Datei beinhalten ja auch Whitespace zu diesem Zweck.

Vielen Dank schon Mal

UkAtZ
 
Das kommt auf die bibliothek an, die du benutzt. Meistens gibt es eine möglichkeit, den Output zu formatieren.

Welche lib nutzt du?

REINHAUN!
 
Ich benutze den Java-Standard.

Code:
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

Und ich schreibe die Datei wie folgt:

Code:
Transformer 	 transformer = TransformerFactory.newInstance().newTransformer();
DOMSource        source 	 = new DOMSource(document);
FileOutputStream os          = new FileOutputStream(new File("u:/XML/test.xml"));
StreamResult     result      = new StreamResult(os);
transformer.transform(source, result);

Hab aber weder beim Transformer noch beim DOMSource was gefunden.
 
Hm... es kommt auch darauf an, welche TransformerFactory Implementierung du verwendest. Dies wird soweit ich weiß über eine SystemProperty gesetzt... In Abhängigkeit der konkreten Implementierung kann man dann der Factory mit setAttribute bestimmte Attibute setzen... unter anderem die Ausgabe Formatierung...

vielleicht helfen die hier weiter?

http://www.google.de/search?q=Java ...&rls=org.mozilla:de:official&client=firefox-a

REINHAUN!
 
Möchte gerne beim Java-Standard bleiben. Mit DOM gehts auch:

Die folgende Zeile macht's möglich:

Code:
transformer.setOutputProperty(OutputKeys.INDENT,"yes");

Vielen Dank
 
Zurück