ElementTree.parse内存不足

时间:2013-09-02 02:49:35

标签: python xml xml-parsing

我有以下简单的Python脚本用作导出后测试,以验证导出的XML是否有效。

from xml.etree import ElementTree

try:
    ElementTree.parse(args[0])
except ElementTree.ParseError as e:
    raise Exception('%s does not contain valid XML.' % args[0])

脚本用完的虚拟机看起来内存不足,最新的导出文件大小约为88Mb。

对我本地工作站上的同一文件运行相同的脚本但是会在大约30秒内解析文件而不会出错。

XML本身并不是特别深,我认为最大深度大约是4级。然而,这个名单相当长,为38,570件。因此,我认为可能有一种更有效的解析方法,因为我不想存储或处理解析的结果,我只是想确保XML是有效的。

1 个答案:

答案 0 :(得分:1)

我不懂Python,但我建议检查ElementTree.parse使用的解析器类型。

如果它是一个DOM解析器,请尝试查找SAX解析器并使用它。 SAX解析器效率更高,因为它们不存储整个DOM树。