2017-02-01 2 views
0

Ich habe ein Problem mit der Funktion suchen in lXML. Aber ich denke, das ist mehr eine generische Frage, wie man sagt, dass ich gegen den Wert, nicht die Objektreferenz überprüfen möchte.lxml Element nach Name finden, aber Variable in Suche verwenden

hier also der Code, das funktioniert:

step = xml_obj.find('.//step/name[text()="Design"]').getparent() 

Wenn ich versuche, die Zeichenfolge mit einem Objekt zu ersetzen, ist das Ergebnis immer Keine.

stepn = 'Design' 
step = xml_obj.find('.//step/name[text()=stepn]').getparent() 

'NoneType' object has no attribute 'getparent' 

Antwort

0
stepn = 'Design' 
step = xml_obj.find('.//step/name[text()={}]'.format(stepn)).getparent() 

wenn Sie ' ' verwenden, ist es ein String ist, wird jedes Element in String als String behandelt werden, keine Variable.

Verwenden format Variable Zeichenfolge hinzuzufügen

+0

Dies funktioniert auch nicht. Objekt ist noch keiner. – Empusas

+0

'step = xml_obj.find (' .// schritt/name [text() = {}] '. Format (stepn)). Getparent()' ValueError: Null Länge Feldname im Format So habe ich es bearbeitet ' step = xml_obj.find ('.// ​​schritt/name [text() = {0}]'. format (stepn)). getparent() Druckart (Schritt) 'AttributeError:' NoneType 'Objekt hat kein Attribut' getparent ' – Empusas