在java中将生成的xml存储到字符串变量中

在java中将生成的xml存储到字符串变量中,java,dom,Java,Dom,我有下面的程序,在其中我试图生成一个XML,它也是通过DOM解析器生成的。我想将生成的XML存储到一个字符串变量中,但它不起作用 如何将生成的XML存储到字符串变量中 public class generatexml { public static void main(String[] args) { //************ wantt to store the generated xml in a string ******** String

我有下面的程序,在其中我试图生成一个XML,它也是通过DOM解析器生成的。我想将生成的XML存储到一个字符串变量中,但它不起作用

如何将生成的XML存储到字符串变量中

public class generatexml {

    public static void main(String[] args) {


        //************ wantt to store the generated xml in a string ********
        String s = generatexml();

    }

    public static StreamResult generatexml()
    {
          try {
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

            // root elements
            Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("kermail");
            doc.appendChild(rootElement);

            for(int i =0 ;i<5 ;i++ )

            {           
            Element invoiceReferenceNotificationMessage = doc.createElement("invoiceReferenceNotificationMessage");
            rootElement.appendChild(invoiceReferenceNotificationMessage);

            Element InvoiceReference = doc.createElement("abceReference");
            InvoiceReference.appendChild(doc.createTextNode("7815"));
            invoiceReferenceNotificationMessage.appendChild(abceReference);
        }


            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);

             StreamResult result = new StreamResult(System.out);
            transformer.transform(source, result);

            return result;

          } catch (ParserConfigurationException pce) {
            pce.printStackTrace();
          } catch (TransformerException tfe) {
            tfe.printStackTrace();
          }

        }}
公共类generatexml{
公共静态void main(字符串[]args){
//************wantt将生成的xml存储在字符串中********
字符串s=generatexml();
}
公共静态StreamResult generatexml()
{
试一试{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
//根元素
Document doc=docBuilder.newDocument();
Element rootElement=doc.createElement(“kermail”);
doc.appendChild(rootElement);

对于(inti=0;i,您的代码对我来说似乎是正确的。但看起来您需要这样做

        transformer.transform(source, result);
        System.out.println();
        return result;
其他方法如所述

更新:-

      DOMSource source = new DOMSource(doc);
       StringWriter writer = new StringWriter();
       StreamResult result = new StreamResult(writer);
       TransformerFactory tf = TransformerFactory.newInstance();
       Transformer transformer = tf.newTransformer();
       transformer.transform(source , result);
       writer.flush();
       String xmlString = writer.toString();

谢谢,但我的问题是我想将xml存储到一个字符串变量中