2012-03-26 9 views
0

Say I Elementstruktur von xqueryWie durch Elemente in Lxml navigieren?

categories = tree.xpath(u"//ul[@class='tree-root']/li") 

for cat in categories: 
    catName = cat.find('span/span') # is there any shortcut for this? 

Wie Sie finde ich zurück haben verwenden, um Span Elemente zuzugreifen sehen können. Die Frage ist, gibt es eine Verknüpfung, um auf untergeordnete Elemente mit bekannten Pfad zugreifen oder finden, ist der einzige Weg?

+0

Was wäre kürzer als ein einzelner Anruf? – Marcin

+0

'find' hört sich an, als würde man etwas suchen, was die Performance beeinflusst, während ich den Pfad kenne und es keine Notwendigkeit gibt, zu suchen. – Pablo

Antwort

2

Sie können xpath() auf Elemente, die die gleiche Art und Weise wie auf dem Baum verwenden:

span = cat.xpath('span/span') 

Leider konnte ich nichts über einen direkteren Zugang zu Subelementen in der Dokumentation finden. Sie können iteriert oder als Listenelemente verwendet werden, aber das ist nicht sehr praktisch. Die Klasse Element bietet nur Zugriff auf die Attribute des aktuellen Elements.

+0

Ich meine, gibt es eine Möglichkeit, nativ wie cat ['span'] ['span'] oder cat.span.span auf sie zuzugreifen? – Pablo

+0

Ich glaube nicht, dass es möglich ist. Ich habe die Antwort ein wenig erweitert. –

+0

Schade ... sowieso, спасибо :) – Pablo

Verwandte Themen