2016-05-13 5 views
2

Ich habe eine ähnliche XML-Datei. Und ich mag ein Kind Knoten auf seinem TagWählen Sie einen bestimmten Kind-Knoten basierend auf Tag mit XPath oder Lxml

<list> 
    <age> 
    <John>18</John> 
    <Tom>22</Tom> 
    <Samer>19</Samer> 
    <Mark>21</Mark> 
    </age> 
</list> 

Gibt es eine Möglichkeit auf Basis auswählen, um „Tom Knoten“ zum Beispiel aus dem „Alten Knoten“ ab?

Ich habe so etwas versucht ageNode.xpath("/Tom") aber es funktioniert nicht. Die ageNode.getchildren()[1] funktioniert, aber die Sache ist Reihenfolge ist jedes Mal anders. So kann ich nur von Tag nicht auf Bestellung abhängen.

Ich benutze Python 2.7 und lxml-Paket.

+0

Try 'ageNode.xpath („Tom“)' –

+0

Und es ist so einfach. Danke, es funktioniert :) – KhaledMaged

Antwort

1

/ am Anfang von XPath immer den Stammknoten verweisen. Um eine relative XPath zu tun, müssen Sie entweder ein . hinzufügen oder / vollständig entfernen, wie im Kommentar erwähnt:

ageNode.xpath("./Tom") 
ageNode.xpath("Tom") 
Verwandte Themen