XML парсим любой библиотекой. Получаем дерево разбора.
https://pep8.ru/doc/dive-into-python-3/14.html
Дальше начинаете обходить дерево и для каждога узла(node) проверять подходит ли он вам.
https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%85%D...
В функции проверки и должна быть вся магия. Возможно вы сможете придумать эвристическое правило от разных параметров. Например:
*путь от корня (root/part/segment/item)
*имя тега
*значения параметров тега
*имена тегов-детей
*...
При необходимости можно пытаться ускорить процесс, если о данных что-то известно. Так можно не обходить все дерево, а отбрасывать его части если мы поняли что это не то что нам нужно.
Если данных очень много и вариативность очень большая (например ищем рекламу на веб страницах) можно заняться машинным обучением. Это отдельная сложная тема выходящая за рамки вопроса.