我必须输出一个可以包含大量数据的XML文件,我正在使用DOM解析器来编写XML文件。还可以将数据附加到现有的 XML 文件。
我的要求是将数据添加到根元素。
是否可以在不读取整个 XML 文档的情况下追加数据(不将 XML 加载到内存中)?
示例数据:
当前 XML 文件:
<employees>
<employee>
<name>jon</name>
<age> 22</age>
<address> address1 </address>
</employee>
</employees>
所需文件:
<employees>
<employee>
<name>jon</name>
<age> 22</age>
<address> address1 </address>
</employee>
<employee>
<name>jon1</name>
<age> 24</age>
<address> address2 </address>
</employee>
</employees>
最佳答案
如果您不想将整个 XML 加载到内存中,那就很难了。
您可以通过操作原始字符串(子字符串等)来实现这一点 - 但我不推荐这样做。
或者您可以尝试使用 SAX 阅读器 http://www.saxproject.org/apidoc/org/xml/sax/XMLReader.html它使您能够“随时随地”操作 XML。(很抱歉,虽然您可以使用 SAX 解析器来处理 XML 而无需读取其全部内容,但您无法使用它进行编辑)
编辑: 其次,您可以使用 SAX 解析器复制现有 XML,并添加事件监听器,例如root 你可以添加一个 child 。如果您关心的是内存(大 xml 文件),这可能是一个很好的解决方案。
关于java - 在根元素之后追加数据,而不将整个 XML 文件加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984686/