Saya menggunakan transformator XML bawaan Java untuk mengambil dokumen DOM dan mencetak XML yang dihasilkan. Masalahnya adalah bahwa teks sama sekali tidak menjorok ke dalam meskipun telah menyetel parameter "indentasi" secara eksplisit.
Kode sampel
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()));
}
}
hasil
<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>
hasil yang diinginkan
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
Pikiran?
INDENT=yes
saya juga harus menambahkan ini:t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");