如何在Java中向XML输出添加回车符

时间:2011-11-10 19:13:07

标签: java xml carriage-return

在Java中如何在生成的XML文件中输出回车符,以便所有内容都不在一行上?

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("requests");
doc.appendChild(root);
root.appendChild(request);

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(file));
transformer.transform(source, result);

上面的代码创建了一个XML文件,但都在一行上。

3 个答案:

答案 0 :(得分:16)

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

第一行添加缩进,第二次设置缩进值。

答案 1 :(得分:11)

这应解决问题。

transformer.setOutputProperty(OutputKeys.INDENT, "yes");

答案 2 :(得分:0)

在我花了几个小时处理这个问题之后,最后我可以解决我需要的方式(包括一个新行)。以前的答案对我不起作用。

这样,我可以添加一个新行: org.w3c.dom.Text nodeSeparator = doc.createTextNode("\n\n ");

然后,将其插入我想要的节点之前: parentNode.insertBefore(nodeSeparator, foundNode);