Gibt es eine Möglichkeit, bei ungültigen Char-Werten iterparse wiederherzustellen?

Ich benutze lxml'siterparse zum Parsen einiger großer XML-Dateien (3-5Gig). Da einige dieser Dateien ungültige Zeichen haben alxml.etree.XMLSyntaxError ist geworfen.

Bei Verwendung von lxml.etree.parse kann ich einen Parser bereitstellen, der ungültige Zeichen wiederherstellt:

parser = lxml.etree.XMLParser(recover=True)
root = lxml.etree.parse(open("myMalformed.xml, parser)

Gibt es eine Möglichkeit, die gleiche Funktionalität für iterparse zu erhalten?

Bearbeiten: Die Codierung ist hier kein Problem. Diese XML-Dateien enthalten ungültige Zeichen, die bereinigt werden können, indem ein XMLParser mit recover = True definiert wird. Da ich dafür iterparse verwenden muss, kann ich keinen benutzerdefinierten Parser verwenden. Daher suche ich hier nach den Funktionen, die in meinem obigen Snippet bereitgestellt werden:

context = etree.iterparse(open("myMalformed.xml", events=('end',), tag="Foo") <-- cant recover

Antworten auf die Frage(1)

Ihre Antwort auf die Frage