将 stax XML 写入字符串

Writing stax XML to String

我正在使用 stax 创建我的网络应用程序所需的 XML 文档。 目前我正在这样的文件中创建我的 XML:

    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 文件不是我想要的,我需要在 String 中创建我的 XML。 不幸的是,我不知道我需要哪个 OutputStream 对象而不是 FileWriter

你需要 java.io.StringWriter:

FileWriter 一样,它源自 Writer 并且可以传递给 factory.createXMLStreamWriter。完成后,您可以将书面内容转换为字符串。

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

String output = stringOut.toString();