0

我有以下简单的 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])

然而,脚本运行的 VM 似乎用最新的导出文件耗尽了内存,该文件大小约为 88Mb。

在我的本地工作站上对同一个文件运行相同的脚本,但是在大约 30 秒内解析文件而没有错误。

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

4

1 回答 1

1

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

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

于 2013-09-02T03:10:30.187 回答