J'utilise le transformateur XML intégré à Java pour prendre un document DOM et imprimer le XML résultant. Le problème est que le texte n'est pas du tout indenté, bien que j'aie explicitement défini le 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 souhaité
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
Qu'en pensez-vous ?