¿Hay un analizador XML rápido en Python que me permita comenzar a etiquetar como desplazamiento de bytes en la secuencia?

Estoy trabajando con archivos XML potencialmente enormes que contienen información de seguimiento compleja de uno de mis proyectos.

Me gustaría crear índices para esos archivos XML para que uno pueda encontrar rápidamente subsecciones del documento XML sin tener que cargarlo todo en la memoria.

Si he creado un índice de "estantería" que podría contener información como "libros para el autor Joe" están desplazados [22322, 35446, 54545], entonces puedo abrir el archivo xml como un archivo de texto normal y buscar esas compensaciones y luego tenía eso para uno del analizador DOM que toma un archivo o cadenas.

La parte que aún no he descubierto es cómo analizar rápidamente el XML y crear dicho índice.

Entonces, lo que necesito como un rápido analizador SAX que me permite encontrar el desplazamiento inicial de las etiquetas en el archivo junto con los eventos de inicio. Entonces, puedo analizar una subsección del XML junto con el punto de partida en el documento, extraer la información clave y almacenar la clave y el desplazamiento en el índice de estantería.