Task
Я хочу использовать Python для полнотекстового поиска XML-данных.
Примеры данных
<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>
Основные функции
Самая основная функциональность, которую я хочу, состоит в том, что поиск "другого" в XPath ( "/elements/elem" ) возвращает хотя бы значение атрибута ID для соответствующего элемента (elem 2) и вложенного элемента (elem 3, вложенные 1) или соответствующие XPaths.
Идеальная функциональность
Решение должно быть гибким и масштабируемым. Я ищу возможные комбинации этих функций:
- поиск вложенных элементов (бесконечная глубина)
- атрибуты поиска
- поиск предложений и абзацев
- поиск с использованием подстановочных знаков
- поиск с использованием нечеткого соответствия
- вернуть точную информацию соответствия
- хорошая скорость поиска для больших файлов XML
Вопрос
Я не ожидаю решения со всей идеальной функциональностью, мне придется комбинировать различные существующие функции и сам код. Но сначала я хотел бы узнать больше о том, что там есть, какие библиотеки и подходы вы обычно использовали для этого, каковы их плюсы и минусы.
EDIT: Спасибо за ответы до сих пор, я добавил детали и начал щедрость.