Python - Библиотека ElementTree - Поиск по дереву по значению атрибута - PullRequest
2 голосов
/ 05 ноября 2011

Я установил библиотеку ElementTree отсюда: http://effbot.org/zone/element.htm в python 2.7.

Я проанализировал в XML-файле:

tree_a=parse('/home/user/cookies.xml')

Вопрос, которыйпоявляется сейчас, и где я не могу извлечь информацию из документации по effbot ElementTree:

Как я могу получить доступ к узлу из xml-дерева, вызывая его по значению его атрибута?

что-то вроде

tree_a.getNode(my_attribute,my_attribute_value)

в примере:

tree_a.getNode(cookie_diameter, 12)

, чтобы запрос возвращал узел из xml-дерева, который в качестве атрибута cookie_diameter имеет значение 12

Существует ли встроенная функция?

С уважением

Daniyal

1 Ответ

4 голосов
/ 05 ноября 2011

ElementTree имеет ограниченную поддержку XPath.Хотя он не поддерживает все, некоторые более продвинутые вещи работают.Вы можете запросить значения атрибутов с помощью ElementTree 1.3+ (встроенного в Python 2.7+ и Python 3.2+) следующим образом:

tree.find( './/*[@cookie_diameter="12"]' )

Для полной поддержки XPath см. Документацию на effbot.org..

...