于吉吉的技术博客

建造高性能门户网

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 6 文章 :: 149 评论 :: 0 Trackbacks

xml

     摘要: 先感谢同事renial的<解析xml时遇到的一些问题>技术分享,下面是一些记录和实际操作

1.使用Dom4j解析大文件时内存溢出的问题

问题是这样的,当我用dom4j去解析一个几十M的xml时,就出现out of memory.当然了,这也是根据你的机器性能而定的,我们都知道dom4j在各种DOM解析器中应该算是性能最好的,连大名鼎鼎的Hibernate都是用dom4j来解析XML配置文件的
问题出在于使用dom4j的SAXReader是会把整个XML文件一次性读入,如果XML文件过大就会抛出out of memory,但即使是使用SAXParser批量读入解析,但它也是一次解析完,假设XML文件有几万条数据,那么解析后就必须在内存放入这几万条对象.

常用的Dom4j文件解析方式:

InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //将整个XML构建为一个Document 阅读全文
posted @ 2010-09-28 17:10 陈于喆 阅读(15000) | 评论 (2)  编辑