有没有一种简单的方法将我的XML对象转换回java中的字符串?

问题描述:

我有一个xml文档对象,我需要将其转换为字符串。有没有一种简单的方法将我的XML对象转换回java中的字符串?

有没有简单的方法来做到这一点?

+0

你在使用什么API,并输入那个对象? – Loki 2009-02-03 18:58:45

下面是一些简单的代码我掏出库我身边的。可能想打扮它,但它的工作原理:

import java.io.*; 
import javax.xml.transform.*; 
import javax.xml.transform.dom.*; 
import javax.xml.transform.stream.*; 

public String TransformDocumentToString(Document doc) 
{ 
    DOMSource dom = new DOMSource(doc); 
    StringWriter writer = new StringWriter(); 
    StreamResult result = new StreamResult(writer); 

    TransformerFactory factory = TransformerFactory.newInstance(); 
    Transformer transformer = factory.newTransformer(); 
    transformer.transform(dom, result); 

    return writer.toString(); 
} 

编辑:作为评论或更早注意到,我有一个语法错误。不得不拉出一些敏感的线条,所以我不会把罐头放回去,并把它们放回错误的顺序。谢谢! ;-)

+0

优秀...但应该指出,你可能(像我一样)有一个过时的版本的xalan.jar,你将失败在TransformerFactor.newInstance()调用(即使它不会产生任何错误蚀)。 xalan-2.7.0.jar是正确的版本。 – 2009-02-03 19:46:40

您可以使用dom4j的:

OutputFormat format = OutputFormat.createPrettyPrint(); 
XMLWriter writer = new XMLWriter(System.out, format); 
writer.write(document); 

我把它放在评论中,但后来认为,为了将来的参考,如果我真的将它添加为答案,人们可​​能会发现它更容易。所以... Joshua.ewer的回答是正确的,但需要xalan-2.7.0.jar。

+0

良好的通话。感谢您指出了这一点;我应该。 – 2009-02-03 23:02:21