我正在使用Java內置的XML轉換器來獲取DOM文檔並打印出生成的XML。問題是,儘管已經明確設置了參數「indent」,但它並沒有縮進文本。Java:如何縮進由變壓器生成的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>
思考?
哦男子*大滿貫面臨到臺* 感謝 – Mike 2009-09-06 03:48:35
看來愚蠢,我認爲默認縮進爲0,但除了'INDENT =是的'我也必須添加:'t.setOutputProperty(「{http://xml.apache.org/xslt}indent-amount」,「2」);' – lapo 2011-01-28 10:21:48
請注意。此縮進屬性在java 5中不起作用。它在java 7中執行。未在java中嘗試過6 – Hilikus 2013-03-06 17:04:49