使用Stax API Java修改xml文件

时间:2015-09-17 13:38:40

标签: java xml stax

我是XML的新手,我尝试修改xml文件。 让我解释一下我想做什么。我有一个现有的文件,写了几行,但我想保留它们并添加其他文件。

我的例子不按我想要的方式工作。它会删除所有内容,并编写新的XML。

我需要阅读以了解如何做到这一点?

这是我的java代码:

public static void WriteFile(){
          try{
              XMLOutputFactory  xMLOutputFactory  = XMLOutputFactory.newFactory();
              XMLStreamWriter xMLStreamWriter = xMLOutputFactory.
                      createXMLStreamWriter(new FileOutputStream("src\\data\\orders.xml"));
              xMLStreamWriter.writeStartDocument("1.0");
              xMLStreamWriter.writeStartElement("products");
              xMLStreamWriter.writeStartElement("product");

              //set description
              xMLStreamWriter.writeStartElement("description");
              xMLStreamWriter.writeCharacters("Apple MacBook Air A 11.6 Mac OS X v10.7 Lion MacBook");
              xMLStreamWriter.writeEndElement();
               //end description

              //set price
              xMLStreamWriter.writeStartElement("price");
              xMLStreamWriter.writeAttribute("currency","USD");
              xMLStreamWriter.writeCharacters("999");
              xMLStreamWriter.writeEndElement();
              //end price

              xMLStreamWriter.writeEndElement();
              //end produtcs
              xMLStreamWriter.writeEndElement();
              //end produtc
              xMLStreamWriter.flush();
              xMLStreamWriter.close();
          }catch (Exception e){
              System.out.println(e.getMessage());
          }
      }

1 个答案:

答案 0 :(得分:-1)

您的代码使用XML Stream Writer在文件位置写入一些数据。文件存在并恰好包含XML这一事实无关紧要,因为您的代码只会覆盖它。

你现在做的是:

  1. 撰写新内容
  2. 您需要的是:

    1. 阅读现有文件的内容
    2. 撰写旧内容
    3. 撰写新内容
    4. 保存文件
    5. 对于步骤2,3和4,您可以使用新文件,然后覆盖旧文件。