XML 文档到字符串

获取 XML 文档(org.w3c.dom.Document)的字符串表示形式的最简单方法是什么?也就是说,所有节点都将在一行上。

举个例子

<root>
<a>trge</a>
<b>156</b>
</root>

(这只是一个树表示,在我的代码中它是一个 org.w3c.dom.Document对象,所以我不能将它看作一个 String)

"<root> <a>trge</a> <b>156</b> </root>"

谢谢!

187746 次浏览

首先,您需要去掉所有文本节点中的所有换行符。然后可以使用标识转换来输出 DOM 树。看看 TransformerFactory#newTransformer()的 javadoc。

假设 docorg.w3c.dom.Document的实例:

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String output = writer.getBuffer().toString().replaceAll("\n|\r", "");