当前位置: 首页 > 知识库问答 >
问题:

使用OutputStreamWriter(StAX解析器)向XML文件追加数据

姚善
2023-03-14

我想使用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();

共有1个答案

嵇光临
2023-03-14

您的示例只是在文件末尾追加一个新的xml文档。如果您想要将数据附加到现有的xml文档中,您必须读取源xml,并将其写入另一个文件,根据需要插入您的新元素....有关使用stax API的示例,请参见http://docs.oracle.com/javase/tutorial/jaxp/stax/example.html#bnbgq。

 类似资料:
  • 主要内容:Java StAX解析器 解析XML文档的示例Java StAX解析器 解析XML文档的示例 需要解析的文件input.xml 编写Java StAX解析器 解析XML文档的程序 输出结果为:

  • 主要内容:Java StAX解析器 修改XML文档的示例Java StAX解析器 修改XML文档的示例 需要修改的文件input.xml 编写Java StAX解析器 修改XML文档的程序 输出结果为:

  • 主要内容:Java StAX解析器 创建XML文档的示例Java StAX解析器 创建XML文档的示例 需要生成的XML文件内容如下 编写Java StAX解析器 创建XML文档的程序 输出结果为:

  • 主要内容:Java StAX解析器 查询XML文档的示例Java StAX解析器 查询XML文档的示例 需要解析的文件input.xml 编写Java StAX解析器 查询XML文档的程序 输出结果为:

  • 问题内容: 我如何在Java或C中使用vtd-xml解析如下的xml文件? 任何帮助,将不胜感激。 谢谢 问题答案: 我想其中有些取决于您要如何解析文件。 这是一个“非生产”示例,其中使用了一些有用的技术,包括: XPath选择(此处仅使用“ / *”) 浏览所有同级节点 通过子节点向下看 使用AutoPilot将节点属性提取到地图中 希望能帮助到你 产生以下输出: 添加带有AutoPilot循环

  • 如何在java或C中使用vtd xml解析如下xml文件? 任何帮助都将不胜感激。 谢谢