¿Cómo devolver datos de un analizador Python SAX?

He estado tratando de analizar algunos archivos XML enormes que LXML no asimilará, así que me veo obligado a analizarlos conxml.sax.

class SpamExtractor(sax.ContentHandler):
    def startElement(self, name, attrs):
        if name == "spam":
            print("We found a spam!")
            # now what?

El problema es que no entiendo cómo realmentereturn, o mejor,yield, las cosas que este controlador encuentra para la persona que llama, sin esperar a que se analice todo el archivo. Hasta ahora, he estado jugando conthreading.Thread yQueue.Queue, pero eso lleva a todo tipo de problemas con hilos que realmente me están distrayendo del problema real que estoy tratando de resolver.

Sé que podría ejecutar el analizador SAX en un proceso separado, pero creo que debe haber una forma más sencilla de obtener los datos. ¿Esta ahí

Respuestas a la pregunta(8)

Su respuesta a la pregunta