#python #xml #parsing #elementtree
#python #xml #синтаксический анализ #elementtree
Вопрос:
Я установил библиотеку 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
Существует ли встроенная функция?
С наилучшими пожеланиями
Даниял
Комментарии:
1. @poke упоминает об этом. Я хотел бы повторить
ElementTree
является частью Python stdlib начиная с Python 2.5.
Ответ №1:
ElementTree имеет ограниченную поддержку XPath. Хотя он не поддерживает все, некоторые более продвинутые вещи работают. Вы можете запрашивать значения атрибутов с помощью ElementTree 1.3 (встроенного в Python 2.7 и Python 3.2 ) следующим образом:
tree.find( './/*[@cookie_diameter="12"]' )
Для полной поддержки XPath смотрите документацию по effbot.org .
Комментарии:
1. Отличный ответ. Я не вижу ничего, что можно было бы добавить.