从Java中的Document获取xml字符串

时间:2011-01-25 13:43:38

标签: java xml

我有一个Java程序,旨在考虑使用xml dom并将其写入字符串。 我正在使用这些软件包:org.w3c.dom.*javax.xml.parsers.*;

所以我有DocumentBuilderDocumentElement个对象......

有没有办法在一次调用中获取代表我的xml dom的字符串????

4 个答案:

答案 0 :(得分:16)

不是一个电话,而是:

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", Integer.toString(2));

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc.getDocumentElement());

trans.transform(source, result);
String xmlString = sw.toString();

setOutputProperty方法使字符串输出更漂亮,以便您可以将其取出。

答案 1 :(得分:2)

String xmlString =  org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);

答案 2 :(得分:0)

我也在寻找一种廉价而有效的序列化DOM的方法。到目前为止,我只看到两个选项:

也许您可以尝试LSSerializer方法(但不能在一次调用中)。

答案 3 :(得分:0)

org.apache.axis.utils.XMLUtils.PrettyDocumentToString(Document)方法存在一个问题,即标记值中包含空格。

解决方案是使用方法org.apache.axis.utils.XMLUtils.DocumentToString(Document)。