2012-04-05 5 views
1

Ich verwende die IndentingXMLStreamWriter-Klasse, um eine gut formatierte XML-Datei zu erhalten. Der Code sieht folgendermaßen aus:Java: Die Verwendung von IndentingXMLStreamwriter führt zu einer großen Dateigröße

XMLOutputFactory output = XMLOutputFactory.newInstance(); 
XMLStreamWriter streamWriter; 
IndentingXMLStreamWriter indentingStreamWriter; 
streamWriter = output.createXMLStreamWriter(new FileOutputStream(fileName)); 
indentingStreamWriter = new IndentingXMLStreamWriter(streamWriter); 
indentingStreamWriter.setIndentStep(" "); 
indentingStreamWriter.writeStartDocument("UTF-8", "1.0"); 

Die Größe und Tiefe des generierten XML ist sehr groß. Wenn ich den einrückenden streamwriter benutze, ist die Größe der Datei mehr als doppelt so groß wie die mit dem "normalen" streamwriter erzeugte Datei. Gibt es einen besseren Weg, die Einrückung zu erkennen oder mache ich etwas falsch?

Vielen Dank im Voraus

Lars

Update: dty ist -von Kurs- absolut richtig. Ich frage mich, ob es eine gute Idee ist, die Einrückung auf eine kompaktere Weise durchzuführen (z. B. Tabulatorzeichen). Irgendwelche Ideen oder Vorschläge?

Antwort

2

Auf die Gefahr hin, dumm zu klingen, nehmen Sie eine Datei mit XML und fügen Einrücken (4 Zeichen pro Ebene) und Zeilenumbrüche (vermutlich). Es wird größer werden.

Wie viel größer ist, hängt davon ab, wie groß die XML-Tags sind und wie tief sie verschachtelt sind. Wenn die Tags ziemlich klein sind, ist die relative Größe des Leerraums ziemlich groß und könnte möglicherweise die Größe der Datei verdoppeln. Wenn sie tief verschachtelt sind, fügen Sie jeder Zeile viel Platz hinzu.

Sie scheinen nicht viele Optionen zu haben, wenn Sie ein schön gedrucktes Dokument wünschen. Du könntest weniger Leerzeichen (2 statt 4) oder sogar Tabulatoren verwenden (obwohl der nächste Typ dich dafür erschießen könnte), aber ich denke, das ist ein Fall von c'est la vie.