2016-02-04 4 views
2

Я использую stax для создания XML-документа, который мне нужен для моего веб-приложения. В настоящее время я создаю мой XML в файл, как это:Запись stax XML в String

XMLOutputFactory factory = XMLOutputFactory.newInstance(); 
    String output=null; 
    try 
    { 
      XMLStreamWriter writer = factory.createXMLStreamWriter(
        new FileWriter("C:\\Junk\\xmlDoc.xml")); 
      writer.writeStartDocument(); 
      writer.writeStartElement("TagName1"); 
      writer.writeAttribute("AAA", "BBB"); 
      writer.writeEndElement(); 
      writer.writeEndDocument();    
      writer.flush(); 
      writer.close(); 
    } 
    catch (XMLStreamException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (IOException e) 
    {  
     e.printStackTrace(); 
    } 

Но файл XML не то, что я хочу, мне нужно, чтобы создать свой XML в String. К сожалению, я не могу понять, какой объект OutputStream мне нужно вместо FileWriter

ответ

4

Вам нужен java.io.StringWriter:

Как FileWriter это происходит от Writer и может быть передан в factory.createXMLStreamWriter. И как только вы закончите, вы можете превратить написанное содержимое в строку.

StringWriter stringOut = new StringWriter(); 
XMLStreamWriter writer = factory.createXMLStreamWriter(stringOut); 
... // write XML 

String output = stringOut.toString(); 
Смежные вопросы