我必须输出一个可以包含使用数据量的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>
答案 0 :(得分:0)
如果您不想将整个XML加载到内存中,那将很难。
你可以通过操纵原始字符串(子字符串等)来实现这一点 - 但我不建议这样做。
或者您可以尝试使用SAX阅读器http://www.saxproject.org/apidoc/org/xml/sax/XMLReader.html,这使您可以“随时随地”操作XML。(对不起,虽然您可以使用SAX解析器来处理XML而不用阅读其全部内容,您无法使用它进行编辑)
修改强> 第二,虽然你可以使用SAX解析器复制现有的XML,并通过添加事件监听器来实现。你可以添加一个孩子。如果您关注的是内存(大型xml文件),这可能是一个很好的解决方案。
答案 1 :(得分:-1)
您可以使用DOM4j来执行此操作。