获取XML文档的字符串表示形式(org.w3c.dom.Document
)的最简单方法是什么?这就是所有节点都在一条线上。
例如,来自
<root>
<a>trge</a>
<b>156</b>
</root>
(这只是一个树表示,在我的代码中它是一个org.w3c.dom.Document
对象,所以我不能把它当作一个字符串)
到
"<root> <a>trge</a> <b>156</b> </root>"
谢谢!
答案 0 :(得分:191)
假设doc
是org.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", "");
答案 1 :(得分:2)
使用Apache XMLSerializer
这是一个例子: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
你也可以检查这个
答案 2 :(得分:1)
首先,您需要删除所有文本节点中的所有换行符。然后,您可以使用标识转换来输出DOM树。查看TransformerFactory#newTransformer()
的javadoc。