使用XMLStreamWriter附加到XML

时间:2009-01-10 17:06:05

标签: java xml

基本上,应用程序将Collection的内容写入XML。我正在使用XMLStreamWriter(XMLOutputFactory.newInstance().createXMLStreamWriter(...))来实现此目的。

除了我无法获得如何将数据附加到现有文件之外,效果很好。不要真的喜欢先读取所有内容,将数据附加到内存然后覆盖的想法。或者这是唯一的方式?

3 个答案:

答案 0 :(得分:3)

简单地附加到XML文件将导致格式错误的XML。您应该构建DOM并附加所需的新元素。

答案 1 :(得分:2)

如果你要附加一个顶级元素,你可能会做你想做的事情。例如,如果您有此文件:

<some_element>
  <nested_element>
    ...
  </nested_element>
</some_element>

你最有可能会附加另一个some_element元素。

但是,如果有一个外层元素,你显然会被搞砸,你必须附加一个内部级别的元素。例如,假设您要在此文件中添加some_element元素:

<data>
  <some_element>
    <nested_element>
      ...
    </nested_element>
  </some_element>
</data>

一般来说,你最好不要重新分析文档,然后重写它。如果它很小,请使用基于DOM的解析器;它更容易。如果文件很大,那么使用基于SAX的文件。

答案 2 :(得分:1)

另一种方法是构建一个新的XML文件,然后通过XSLT transformations将其与前一个文件合并。要应用XSLT样式表,您应该使用Java XML Transformation API