我想用lxml使用XPath表達式解析HTML。我的問題是匹配對一個標籤的內容:如何匹配XPath中的元素內容(lxml)?
例如給定的使用
.//a[@href='http://something']
的
<a href="http://something">Example</a>
元件我可以匹配href屬性,但給出的表達式
.//a[.='Example']
或甚至
.//a[contains(.,'Example')]
lxml拋出'invalid node predicate'異常。
我在做什麼錯?
編輯:
示例代碼:
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'。我得到 '語法錯誤:無效的節點謂詞'
而不是使用StringIO的,你也可以使用etree.fromstring()來解析您的HTML。 – 2011-08-04 07:09:54