¿Hay un interruptor para ignorar los prefijos de espacio de nombres no definidos en LXML?

Estoy analizando un archivo XML no compatible (formato xmlpipe2 de Sphinx ) y me gustaría que el analizador LXML ignore el hecho de que hay prefijos de espacio de nombres sin resolver.

Un ejemplo del XML de Sphinx:

      

Soy consciente de pasar una opción de palabra clave de analizador para intentar recuperar un XML roto, por ejemplo

 parser = etree.XMLParser(recover=True) tree = etree.parse('sphinxTest.xml', parser) 

pero lo anterior no ignora el prefijo, lo elimina.

Podría crear un objective que agregue el prefijo eliminado, por ejemplo,

 parser = etree.XMLParser(target = AddPrefix()) 

donde AddPrefix() es una clase que agrega el prefijo a cada etiqueta de atributo. ¿Hay una manera más sencilla de hacer esto? Eventualmente quiero escribir el formato xmlpipe2 de Sphinx limpiamente.

Agregue xmlns:sphinx="bogus" al elemento raíz.