我使用 ElementTree 在 Python 上解析 XML 文件。我发现 cElementTree 的 C 实现与常规实现相比工作得非常快。但我也发现了构造:
xml.etree.cElementTree.iterparse(filename, parser=MyCystomParser())
不会工作。你会看到类似的东西:
__init__() got an unexpected keyword argument 'parser'
同时,与 'xml.etree.ElementTree.iterparse' 相同的构造确实有效。
我在解析 XML 文件时使用自定义解析器来保留注释(默认解析器会忽略/删除它)。
有谁知道为什么在 C 实现中它不起作用?当 cElementTree 发布时,'parser' 参数已经在 ElementTree 中。