Ich möchte HTML mit Lxml mit XPath-Ausdrücken analysieren. Mein Problem ist passend für den Inhalt eines Tags:Wie finde ich den Inhalt eines Elements in XPath (lxml)?
Zum Beispiel mit dem
<a href="http://something">Example</a>
Elemente ich das Attribut href
.//a[@href='http://something']
mit mithalten können, aber denen dem Ausdruck
.//a[.='Example']
oder sogar
.//a[contains(.,'Example')]
lxml löst die Ausnahme 'ungültiges Knotenprädikat' aus.
Was mache ich falsch?
EDIT:
Beispielcode:
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
Erwartete Ausgabe ist 'a'. Ich erhalte 'Syntaxerror: invalid Knoten Prädikat'
Anstatt StringIO zu verwenden, hätten Sie etree.fromstring() verwenden können, um Ihren HTML-Code zu parsen. –