java处理比较大的xml文件
迷茫
迷茫 2017-04-17 17:38:47
[Java讨论组]

如题,我用java需要处理一个300多M的xml文件。这个文件的核心结构如下:

然后现在我需要做的就是找到相当内容的两个revision标签(如示例中的id为111和119的两个revision),然后将其中间的(包括最后一个119)revision全部删除.(按例子xml来说,最后就只剩一个id为111的revision)
下面是我用java写的核心算法:

其中sha跟revision都是arraylist的数组,sha存的是所有sha1标签的内容,revision存的是所有revision的内容。因为是一一对应的,所以我直接用的一个三层的循环来实现(前两层是寻找有相同sha1内容的,第三个循环则是删除这两个标签的之间的revision标签)。。

这个算法在处理一部分的测试xml时是没问题的,可是一旦用于测试300多M的那个源文件时会出现这样的错误:

我查了一些网上的说法,也调整了虚拟机的最大内存,但是依然会出现这样的错误。应该是我算法本身复杂度就比较高吧,但是我也没想到其他比较合适的处理思路了。求各位大神指教下orz

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号