给出以下XML结构:
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element root = document.createElement("root");
Element child = document.createElement("child");
root.appendChild(child);
以下具有指定输出属性的变换器:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
transformer.transform(new DOMSource(root), new StreamResult(System.out));
我得到了预期的结果:
<?xml version="1.0" encoding="UTF-8"?><root>
<child/>
</root>
生成以下输出需要哪些输出属性?
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child />
</root>
我需要一些东西来获取xml标题后的换行符和空标记结束前的空格。 (比如在Eclipse中格式化)
我的变压器是默认的com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
。
答案 0 :(得分:0)
您将通过添加
获得预期结果transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
并拥有一个独立的文档。请参阅section 16 of the XSL Transformations (XSLT) W3C Recommendation。