indent java xml formatting indentation

indent - string format xml java



sangra texto XML con transformador (1)

Estoy escribiendo un archivo XML con el siguiente código:

Source source = new DOMSource(rootElement); Result result = new StreamResult(xmlFile); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(source, result);

y este es el archivo de salida:

<?xml version="1.0" encoding="UTF-8"?> <feature-sequences> <sequence> <initial-frame>0</initial-frame> <points> <point> <x>274.0</x> <y>316.0</y> </point> ...

Quiero que este archivo se sancione, por ejemplo:

<?xml version="1.0" encoding="UTF-8"?> <feature-sequences> <sequence> <initial-frame>0</initial-frame> <points> <point> <x>274.0</x> <y>316.0</y> </point> ...

la llamada a setOutputProperty en mi código no resuelve el problema, en realidad hace que el texto tenga nuevas líneas (pero no se sangra).

Alguien tiene una solución para esto, sin la necesidad de bibliotecas externas?


Es posible que también deba especificar la cantidad de espacios para sangrar:

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");