मैं DOM के डॉक्यूमेंट लेने के लिए XML में निर्मित जावा का उपयोग कर रहा हूँ और परिणामी XML को प्रिंट कर रहा हूँ। समस्या यह है कि यह स्पष्ट रूप से पैरामीटर "इंडेंट" सेट करने के बावजूद पाठ को इंडेंट नहीं कर रहा है।
नमूना कोड
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()));
}
}
परिणाम
<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>
वांछित परिणाम
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
विचार?
INDENT=yes
मुझे यह भी जोड़ना था:t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");