我有以下简单的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是有效的。
答案 0 :(得分:1)
我不懂Python,但我建议检查ElementTree.parse
使用的解析器类型。
如果它是一个DOM解析器,请尝试查找SAX解析器并使用它。 SAX解析器效率更高,因为它们不存储整个DOM树。