2015-05-24 69 views
-1

我有下面的程序,我試圖生成一個也是通過DOM解析器生成的XML。我想將生成的XML存儲到一個字符串變量中,但它不起作用。將生成的xml存儲到java中的字符串變量中

如何將生成的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(); 
      } 

     }} 

回答

0

您的代碼似乎對我正確。不過貌似你需要做的

 transformer.transform(source, result); 
     System.out.println(); 
     return result; 

其他方法做它在Is there a more elegant way to convert an XML Document to a String in Java than this code?

更新描述: -

 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(); 
+0

謝謝,但我的查詢是我想的XML存儲到一個字符串變量 –

+0

請參閱我的更新 –

+0

@M Sach謝謝itworks for me –

相關問題