Я хочу проанализировать HTML с lxml, используя выражения XPath. Моя проблема совпадает с содержимым тега:
Например, учитывая
<a href="http://something">Example</a>
элемент Я могу сопоставить атрибут href, используя
.//a[@href='http://something']
но с учетом выражения
.//a[.='Example']
или даже
.//a[contains(.,'Example')]
lxml создает исключение «неверный предикат узла».
Что я делаю не так?
EDIT:
Пример кода:
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: неверный предикат узла'