我正在使用 lxmliterparse
来解析一些大的 XML 文件(3-5Gig)。由于其中一些文件包含无效字符,lxml.etree.XMLSyntaxError
因此会抛出 a。
使用 lxml.etree.parse 时,我可以提供一个解析器,它可以恢复无效字符:
parser = lxml.etree.XMLParser(recover=True)
root = lxml.etree.parse(open("myMalformed.xml, parser)
有没有办法为 iterparse 获得相同的功能?
编辑: 编码在这里不是问题。在这些 XML 文件中存在无效字符,可以通过使用 recover=True 定义 XMLParser 来清除这些字符。因为我需要为此使用 iterparse,所以我不能使用自定义解析器。所以我在这里寻找上面的片段中提供的功能:
context = etree.iterparse(open("myMalformed.xml", events=('end',), tag="Foo") <-- cant recover