¿Hay una manera de recuperar iterparse en valores Char inválidos?

Estoy usando iterparse de iterparse para analizar algunos archivos XML grandes (3-5Gig). Dado que algunos de estos archivos tienen caracteres no lxml.etree.XMLSyntaxError se lanza un lxml.etree.XMLSyntaxError .

Al usar lxml.etree.parse puedo proporcionar un analizador que se recupera en caracteres no válidos:

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

¿Hay alguna manera de obtener la misma funcionalidad para iterparse?

Edición: la encoding no es un problema aquí. Hay caracteres no válidos en estos archivos XML que se pueden sanear definiendo un XMLParser con recover = True. Como necesito usar iterparse para esto, no puedo usar un analizador personalizado. Así que estoy buscando la funcionalidad proporcionada en mi fragmento de arriba para esto aquí:

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

Cuando dices caracteres no válidos, ¿te refieres a los caracteres Unicode? Si es así puedes intentarlo

 lxml.etree.XMLParser(encoding='UTF-8', recover=True) 

Si te refieres a XML con formato incorrecto, obviamente esto no funcionará. Si puede publicar su rastreo, podemos ver la naturaleza del XMLSyntaxError que proporcionará más información.