2008-10-02 6 views
28

Ich verwende org.w3cXML API eine vorhandene XML Datei zu öffnen. Ich entferne einige Knoten und füge stattdessen andere hinzu.Java: Schreiben eines DOM in eine XML-Datei (Formatierungsprobleme)

Das Problem ist, dass die neuen Knoten, die hinzugefügt werden, nacheinander geschrieben werden, ohne Newline und keine Einrückung was auch immer. Obwohl es stimmt, dass die XML Datei gültig ist, ist es sehr schwierig für einen Menschen, sie zu untersuchen.

Gibt es trotzdem einen Einzug oder zumindest einen Zeilenumbruch nach jedem Knoten?

+0

Wenn Sie zu dieser Frage gekommen sind und nach Codebeispielen für das Drucken von XML in Java suchen, dann sehen Sie sich an, [wie Sie einen schönen Druck von XML über Java durchführen können] (http://stackoverflow.com/questions/139076/how-to-pretty -print-xml-from-java) statt. –

Antwort

55

Ich gehe davon aus, dass Sie eine Transformer verwenden, um das eigentliche Schreiben (zu einem StreamResult) zu tun. In diesem Fall ist, dies zu tun, bevor Sie transform nennen:

transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); 
+0

Ich bin froh, Ihnen helfen zu können! –

+6

BTW: in der letzten jdk gibt es einen Bug, um dies zu umgehen, müssen Sie vorher tun: TransformerFactory tFactory = TransformerFactory.newInstance(); tFactory.setAttribute ("indent-number", 2); – Karussell

+0

Cheers @Kussell, die es geschafft haben, die Probleme zu beheben, die ich hatte – Hayden