2008-10-02 16 views
28

Estoy usando org.w3cXML API para abrir un archivo existente XML. Estoy eliminando algunos nodos, y en su lugar agregaré otros.Java: escribir un DOM en un archivo XML (problemas de formato)

El problema es que los nuevos nodos que se agregan se escriben uno después del otro, sin nueva línea ni sangría alguna vez. Si bien es cierto que el archivo XML es válido, es muy difícil para un humano examinarlo.

¿Hay alguna forma de agregar sangría, o al menos una nueva línea después de cada nodo?

+0

Si ha llegado a esta pregunta en busca de ejemplos de código sobre cómo imprimir bastante XML en Java, entonces vea [cómo imprimir bonito xml desde Java] (http://stackoverflow.com/questions/139076/how-to-pretty -print-xml-from-java) en su lugar. –

Respuesta

55

Supongo que está utilizando un Transformer para hacer la escritura real (a StreamResult). En cuyo caso, hacer esto antes de llamar transform:

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

¡Me alegra ser de ayuda! –

+6

BTW: en la última versión de jdk hay un error para evitar esto que deberá hacer antes: TransformerFactory tFactory = TransformerFactory.newInstance(); tFactory.setAttribute ("indent-number", 2); – Karussell

+0

Cheers @Karussell que logró solucionar los problemas que estaba teniendo – Hayden

Cuestiones relacionadas