Verfasst: Dienstag 4. November 2008, 11:04
@blubber: Du musst sauberer zwischen Python und XPath unterscheiden. Das ``[0]`` ist nicht im XPath-Ausdruck sondern im Python-Quelltext. Bei XPath-Ausdrücken, die Knotenmengen beschreiben, liefert die `xpath()`-Methode immer eine Liste zurück und auf die bezieht sich der Indexzugriff.
Ebenso kannst Du in XPath-Ausdrücken nicht einfach Python-Namen verwenden und erwarten, das die da auf magische Weise bekannt sind.
Zum ersten Problem: Dann schränk doch einfach den Datenknoten noch mit der Bedingung zum Nachnamen ein.
Zum zweiten Problem: Vergiss was Leonidas dazu geschrieben hat, das ist nämlich nicht viel besser als Variablen per Zeichenformatierung in SQL ein zu fügen.
Und dann lese ich Dir hier mal die Doku vor:
Ebenso kannst Du in XPath-Ausdrücken nicht einfach Python-Namen verwenden und erwarten, das die da auf magische Weise bekannt sind.
Zum ersten Problem: Dann schränk doch einfach den Datenknoten noch mit der Bedingung zum Nachnamen ein.
Zum zweiten Problem: Vergiss was Leonidas dazu geschrieben hat, das ist nämlich nicht viel besser als Variablen per Zeichenformatierung in SQL ein zu fügen.

Und dann lese ich Dir hier mal die Doku vor:
http://codespeak.net/lxml/xpathxslt.html hat geschrieben:The xpath() method has support for XPath variables:Code: Alles auswählen
>>> expr = "//*[local-name() = $name]" >>> print(root.xpath(expr, name = "foo")[0].tag) foo >>> print(root.xpath(expr, name = "bar")[0].tag) bar >>> print(root.xpath("$text", text = "Hello World!")) Hello World!