这个问题在这里已经有答案了:
大文件的java xml解析器(9个答案)
两年前关门了。
我下载 Stack Overflow posts dump file
去做我的工作。当我打开行李的时候 .7z
文件,文件 .xml
转储文件超过65g。
我想解析 .xml
文件,因为有很多内容我不需要。然后我想将用法内容存储到 Mysql
数据库( Java
或者 Python
(都可以)
但文件太大,我无法处理它,它可能会溢出我的内存(8g)。
我能做些什么来解决这个棘手的问题。
1条答案
按热度按时间42fyovps1#
基本上有两种xml解析器,dom解析器和sax解析器。
dom解析器将整个xml解析为dom(内存中xml的一种表示形式),dom易于使用和操作,但必须加载到内存中。
sax解析器是流解析器,它们解析xml文件并基本上发出xml元素的开始和结束。这意味着该文件没有加载到内存中。在大多数情况下,这使得xml的处理更加复杂,但您可以处理不适合内存的文件。
因此,选择您更喜欢的语言并使用sax解析器。python内置了它,对java不太清楚(我已经多年没有使用它了),但是可能有很多选择。