Tôi đang sử dụng biến áp XML tích hợp sẵn của Java để lấy tài liệu DOM và in ra XML kết quả. Vấn đề là nó hoàn toàn không thụt lề văn bản mặc dù đã đặt tham số "thụt lề" rõ ràng.
mã mẫu
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()));
}
}
kết quả
<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>
kết quả như ý
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
Suy nghĩ?
INDENT=yes
tôi cũng đã có thêm điều này:t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");