24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1344  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

冰域逐梦

银虫 (初入文坛)

[求助] dom4j如何处理700M大小的xml文件

dom4j如何处理700M大小的xml文件,从pubmed上下载的XML文件,想把摘要部分提出来,但是程序运行之后内存就会溢出,用小一点的测试数据程序是可以正常运行的,求高手指点
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

冰域逐梦
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

笨猫的项圈

新虫 (初入文坛)

XML的解析方式:
 1.DOM(Document Object Model 文档对象模型)
 关键字:树(Document)
 优点: 把xml文件在内存中构造树形结构,可以遍历和修改节点
 缺点: 如果文件比较大,内存有压力,解析的时间会比较长
2. SAX(Simple API for Xml 基于XML的简单API)
 关键字:流(Stream)
 把xml文件作为输入流,触发标记开始,内容开始,标记结束等动作
 优点: 解析可以立即开始,速度快,没有内存压力
 缺点: 不能对节点做修改
后者触发式解析是不是符合你的要求?
6楼2012-08-13 11:47:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

youxikun

银虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 欢迎常来程序语言看看 2012-05-02 06:42:10
没搞过这么大的文件,仅仅提供个想法。
修改dom4j源码,分段读取文件或者用内存映射。
不知道可行不
2楼2012-05-02 00:46:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sein_tao

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
调一下JVM的内存大小试试看。
很大的文件的话还是自己按流的方式去处理吧。不要一次读到内存中。
3楼2012-05-06 00:01:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sein_tao

金虫 (小有名气)

【答案】应助回帖


xzhdty: 金币+1, 欢迎常来 2012-05-06 06:42:59
4楼2012-05-06 00:09:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见