Texto completo na pesquisa de dados XML com Python: práticas recomendadas, prós e contras

Taref

Eu quero usar o Python para fazer pesquisas de texto completo de dados XM

Exemplo de dados

<elements>
  <elem id="1">some element</elem>
  <elem id="2">some other element</elem>
  <elem id="3">some element
    <nested id="1">
    other nested element
    </nested>
  </elem>
</elements>

uncionalidade básica

A funcionalidade mais básica que eu quero é que uma pesquisa por "outro" em um XPath ("/ elements / elem") retornefinalment o valor do atributo ID para o elemento correspondente (elem 2) e o elemento aninhado (elem 3, aninhado 1) ou os XPaths correspondente

Funcionalidade ideal

A solução deve ser flexível e escalável. Estou procurando possíveis combinações desses recursos:

esquisar elementos aninhados (profundidade infinitsearch attribute procure frases e parágrafossearch usando curingassearch usando correspondência difusaretornar informações de correspondência precisasoa velocidade de pesquisa para grandes arquivos X

Questã

Não espero uma solução com toda a funcionalidade ideal; terei que combinar diferentes funcionalidades existentes e codificar o resto. Mas primeiro eu gostaria de saber mais sobre o que existe, quais bibliotecas e abordagens você usaria normalmente para isso, quais são seus prós e contra

EDIT: Obrigado pelas respostas até agora, adicionei detalhes e começou uma recompensa.

questionAnswers(6)

yourAnswerToTheQuestion