J'utilise le transformateur XML intégré de Java pour prendre un document DOM et imprimer le XML résultant. Le problème est qu'il ne met pas du tout le texte en retrait malgré la définition explicite du paramètre "indent".
exemple de code
public class TestXML {
public static void main(String args[]) throws Exception {
ByteArrayOutputStream s;
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Transformer t = TransformerFactory.newInstance().newTransformer();
Element a,b;
a = d.createElement("a");
b = d.createElement("b");
a.appendChild(b);
d.appendChild(a);
t.setParameter(OutputKeys.INDENT, "yes");
s = new ByteArrayOutputStream();
t.transform(new DOMSource(d),new StreamResult(s));
System.out.println(new String(s.toByteArray()));
}
}
résultat
<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>
résultat désiré
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
Pensées?
INDENT=yes
j'ai également dû ajouter ceci:t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");