Czy istnieje sposób na odzyskanie iterparse w przypadku nieprawidłowych wartości Char?

Używam lxmliterparse analizować niektóre duże pliki XML (3-5Gig). Ponieważ niektóre z tych plików mają nieprawidłowe znaki alxml.etree.XMLSyntaxError Jest rzucony.

Podczas korzystania z lxml.etree.parse mogę dostarczyć parser, który odzyskuje nieprawidłowe znaki:

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

Czy istnieje sposób na uzyskanie tej samej funkcjonalności dla iterparse?

Edytować: Kodowanie nie jest tutaj problemem. W tych plikach XML znajdują się nieprawidłowe znaki, które można oczyścić, definiując XMLParser z recovery = True. Ponieważ muszę do tego użyć iterparse, nie mogę użyć niestandardowego parsera. W związku z tym szukam w tym miejscu funkcjonalności podanej powyżej:

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

questionAnswers(1)

yourAnswerToTheQuestion