日期:2014-05-17  浏览次数:20645 次

如何生成一个超大的XML文件
在Servlet中需要生成的一个超大的XML,然后通过浏览器的方式下载。当前使用了DOM组织数据信息,然后通过Transformer将其与response的输出流连接输出。如果数据量不大,这种方法OK,但是当数据量比较大时,就会产生内存溢出的错误。

有什么办法可以解决这个问题?能否在向DOM中添加数据的同时就向浏览器输出而不是等到整个文档组织完毕后再输出?

------解决方案--------------------
用流式输出,比如StAX组件就能提供这种流式输出。

或者干脆点自行组装XML,边组装边输出。