XML文档到字符串

时间:2011-03-28 08:58:11

标签: java xml string dom xmldocument

获取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>"

谢谢!

3 个答案:

答案 0 :(得分:191)

假设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", "");

答案 1 :(得分:2)

使用Apache XMLSerializer

这是一个例子: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1

你也可以检查这个

http://www.netomatix.com/XmlFileToString.aspx

答案 2 :(得分:1)

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