Java 将XML文档转换为字符串?

Java 将XML文档转换为字符串?,java,Java,我已经摆弄了20多分钟,我的Google foo让我失望了 假设我有一个用Java创建的XML文档(org.w3c.dom.Document): DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder=docFactory.newDocumentBuilder(); Document Document=docBuilder.newDocument(); E

我已经摆弄了20多分钟,我的Google foo让我失望了

假设我有一个用Java创建的XML文档(org.w3c.dom.Document):

DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
Document Document=docBuilder.newDocument();
Element rootElement=document.createElement(“rootElement”);
元素childElement=document.createElement(“childElement”);
appendChild(document.createTextNode(“子文本”));
appendChild(childElement);
document.appendChild(rootElement);

String documentConvertedToString=“?”/您可以使用这段代码来完成您想要的:

public static String getStringFromDocument(Document doc) throws TransformerException {
    DOMSource domSource = new DOMSource(doc);
    StringWriter writer = new StringWriter();
    StreamResult result = new StreamResult(writer);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer transformer = tf.newTransformer();
    transformer.transform(domSource, result);
    return writer.toString();
}

您是否习惯于使用
org.w3c.dom
?其他domapi(Dom4j、JDOM、XOM)使这类事情变得非常简单。
public static String toString(Document doc) {
    try {
        StringWriter sw = new StringWriter();
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer = tf.newTransformer();
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

        transformer.transform(new DOMSource(doc), new StreamResult(sw));
        return sw.toString();
    } catch (Exception ex) {
        throw new RuntimeException("Error converting to String", ex);
    }
}
public static String getStringFromDocument(Document doc) throws TransformerException {
    DOMSource domSource = new DOMSource(doc);
    StringWriter writer = new StringWriter();
    StreamResult result = new StreamResult(writer);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer transformer = tf.newTransformer();
    transformer.transform(domSource, result);
    return writer.toString();
}