2016-04-25 4 views
2

Ich habe einige XML-Dateien, die ich versuche zu verarbeiten. Leider habe ich nicht vollen Zugriff auf alle verschiedenen Elemente, die alle möglichen BäumeKann ich xpath (in lxml) verwenden, um nach Namen von Tags zu suchen, die zu Beginn nicht bekannt sind?

so zum Beispiel darstellen könnte ich ein Dokument haben, das

<typeOfBook> 
    <isMystery>True</isMystery> 
</typeofBook> 

Leicht genug strukturiert ist, aber wenn ich mir die Checkliste, die bei der ersten Erstellung dieser Dateien verwendet wurde Ich sehe Kategorien unter dem Abschnitt Buchtyp wie Referenz Spiritualität. Aufgrund meiner Erfahrung mit dem Geheimnis Ich versuche, einen XPath-Ausdruck zu schreiben

ich meine XPath bauen auf der Grundlage dieser

'//typeofbook/isreferencespirituality/text()' 

dann entdecke ich, dass der eigentliche Tag sie verwendet wurde isrefspirit somit die korrekte XPath ist

'//typeofbook/isrefspirit/text()' 

Angesichts der Anzahl der Dateien und mögliche Anzahl der Kategorien ist den ich versuche zu lernen, es ein FangwerkzeugXPath ist - ich möchte noch einmal durch alle meine Dateien laufen alle Tags nach Art des Buches zu finden Ich kann so richtig den Text klassifizieren, die

im Grunde zurückgegeben Ich möchte so etwas wie

Run eine Abfrage auf alle meine Dokumente tun, um die * in der folgenden Zeile

'//typeofbook/*/' 
+0

'‚// typeofbook/*‘' würde alle Tags innerhalb der typeofbook Tags zurück. –

+1

wow auf dem richtigen Weg, aber ich habe es fallen gelassen - danke Beitrag als Antwort und ich werde Ihnen gutschreiben. – PyNEwbie

Antwort

1

Die finden * wird als Wildcard verwendet, so dass nur //typeofbook/*' alle untergeordneten Elemente innerhalb der typeofbook Tags erhalten.

Es gibt ein paar andere Dinge, für unbekannte Knoten, die Ihnen nützlich sein könnten:

@* # any attribute 
node() # any node at all 
Verwandte Themen