Как сопоставить содержимое элемента в XPath (lxml)?

Я хочу анализировать HTML с помощью lxml с помощью выражений XPath. Моя проблема заключается в совпадении содержимого тега:

Например, учитывая

<a href="http://something">Example</a> 

Я могу сопоставить атрибут href, используя

 .//a[@href='http://something'] 

но данное выражение

 .//a[.='Example'] 

или даже

 .//a[contains(.,'Example')] 

lxml выдает исключение «недопустимый предикат узла».

Что я делаю не так?

РЕДАКТИРОВАТЬ:

Пример кода:

 from lxml import etree from cStringIO import StringIO html = '<a href="http://something">Example</a>' parser = etree.HTMLParser() tree = etree.parse(StringIO(html), parser) print tree.find(".//a[text()='Example']").tag 

Ожидаемый результат: «a». Я получаю 'SyntaxError: недопустимый предикат узла'

One Solution collect form web for “Как сопоставить содержимое элемента в XPath (lxml)?”

Я бы постарался:

.//a[text()='Example']

используя метод xpath ():

 tree.xpath(".//a[text()='Example']")[0].tag 

Если вы хотите использовать iterfind (), findall (), find (), findtext (), имейте в виду, что расширенные функции, такие как сравнение значений и функции , недоступны в ElementPath .

lxml.etree поддерживает простой синтаксис пути методов find, findall и findtext в ElementTree и Element, как известно из исходной библиотеки ElementTree (ElementPath). В качестве расширения, специфичного для lxml, эти классы также предоставляют метод xpath (), который поддерживает выражения в полном синтаксисе XPath, а также пользовательские функции расширения.

  • Нужен общий xpath для следующего html-кода
  • Полнотекстовый поиск XML-данных с помощью Python: лучшие практики, плюсы и минусы
  • Анализ HTML с помощью XPath, Python и Scrapy
  • Python: lxml xpath получает два разных класса
  • Итерировать по всем строкам в таблице, используя python lxml xpath
  • Нужна помощь с использованием XPath в ElementTree
  • Разбирайте HTML через XPath
  • Получить внутренний HTML элемента в lxml
  • Скремблирование веб-контента с использованием xpath не будет работать
  • Scrapy Not Returning Additonal Info из скребковой ссылки в элементе через запрос обратного вызова
  • Разбор XPath в нестандартном формате XML с использованием lxml Python
  • Python - лучший язык программирования в мире.