我想使用 XPath 表达式用 lxml 解析 HTML。我的问题是匹配标签的内容:
例如给定
<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”。我得到“语法错误:无效的节点谓词”