基本上,应用程序将Collection的内容写入XML。我正在使用XMLStreamWriter(XMLOutputFactory.newInstance().createXMLStreamWriter(...)
)来实现此目的。
除了我无法获得如何将数据附加到现有文件之外,效果很好。不要真的喜欢先读取所有内容,将数据附加到内存然后覆盖的想法。或者这是唯一的方式?
答案 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。