我想使用 OutputStreamWriter 将数据附加到 XML 文件,但结果如下所示
<?xml version="1.0" encoding="utf-8"?>
<doc>
<msg>
<tag1>data1</tag1>
...
</msg>
</doc>
<?xml version="1.0" encoding="utf-8"?>
<doc>
<msg>
<tag1>data2</tag1>
...
</msg>
</doc>
如何获得正确的格式
<?xml version="1.0" encoding="utf-8"?>
<doc>
<msg>
<tag1>data1</tag1>
...
</msg>
<msg>
<tag1>data2</tag1>
...
</msg>
</doc>
我试过下面的代码
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
File file = new File(outputFile);
Writer fw = null;
XMLStreamWriter w = null;
try {
if(!file.isFile()) {
file.createNewFile();
}
fw = new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8");
w = outputFactory.createXMLStreamWriter(fw);
w.writeStartDocument("utf-8", "1.0");
w.writeStartElement("doc");
createMessageElement(fingerPrint, w, data);//method to write data
w.writeEndElement();
w.writeEndDocument();
w.flush();
w.close();
w.close();
fw.flush();
fw.close();
请给我建议。我是 StAX 的新手。
最佳答案
您的示例只是将新的 xml 文档附加到文件末尾。如果您想将数据附加到现有的 xml 文档,您必须读取源 xml,并将其写入另一个文件,根据需要插入新元素....参见 http://docs.oracle.com/javase/tutorial/jaxp/stax/example.html#bnbgq以使用 stax api 为例。
关于java - 使用 OutputStreamWriter(StAX 解析器)将数据附加到 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715970/