从文档中间重新启动SAX解析器

时间:2014-05-13 09:51:23

标签: java python c++ xml sax

我正在开发一个需要解析一个非常大的XML文件(大约10GB)的项目。因为处理时间非常长(大约几天),所以我的代码可能会在流程中间退出;所以我想偶尔保存我的代码状态,然后能够从上一个保存点重新启动它。

有没有办法从XML文件的开头启动(重启)SAX解析器?

P.S:我使用Python进行编程,但Java和C ++的解决方案也是可以接受的。

1 个答案:

答案 0 :(得分:1)

不确定这是否能回答你的问题,但我会采取不同的方法。 10GB不是那么多数据,所以你可以实现两阶段解析。

第1阶段是根据某些标记将文件拆分为较小的块,因此最终会得到更小的文件。例如,如果您的第一个文件是A.xml,则会将其拆分为A_0.xmlA_1.xml等。

第2阶段会对每个卡盘进行真正的繁重操作,因此您可以在A_0.xml上调用它,然后在A_1.xml等上调用它。然后您可以在代码退出后重新启动一个块。