suche funktion für etree
Verfasst: Sonntag 28. August 2011, 12:38
Hallo,
pase eine XML datei mit etree.
ein Knoten <HZ> kommt im Knoten <HI> verschieden of vor.
Das Problem, das ich habe liegt bei der Anzahl der Elemente von HZ, da diese variiert.
Beispiel:
Ich möchte die Elemente von HZ nacheinanader in eine Liste speichern und dieser später abarbeiten. Dafür sollen der Liste pro HZ vier weitere Positionen hizugefügt werden, die den Text des jeweiligen Tags enthalten.
Falls das gesuchte Element (und somit auch der Text) nicht vorhanden ist soll in die Liste eine 0.
Habe bislang verschiedene if/else und try/catch konstrukte probiert, funktionieren aber nicht: Der Lister werden zuviele oder keine Stellen hinzugefügt.
Ich habe versucht, mit der Funktion iselelemnt("HZ001") zu arbeiten - fall der wert True ist, den Text der Liste anhängen, andernfalls eine Null anhängen. Das klappt nicht.
Beispiel:
Gibt es eine Funktion (für Python ab Version 2.5), die das kann oder hat jemand eine andere Idee, wie ich das Problem in den Griff bekomme?
Gruß,
Anton
pase eine XML datei mit etree.
ein Knoten <HZ> kommt im Knoten <HI> verschieden of vor.
Das Problem, das ich habe liegt bei der Anzahl der Elemente von HZ, da diese variiert.
Beispiel:
Code: Alles auswählen
<HI>
<HZ>
<HZ001>Eins</HZ001>
<HZ003>Drei</HZ003>
<HZ004>Vier</HZ004>
</HZ>
<HZ>
<HZ001>Eins</HZ001>
<HZ002>Zwei</HZ002>
<HZ003>Drei</HZ003>
<HZ004>Vier</HZ004>
</HZ>
<HZ>
<HZ001>Eins</HZ001>
<HZ003>Drei</HZ003>
</HZ>
<HI>
Falls das gesuchte Element (und somit auch der Text) nicht vorhanden ist soll in die Liste eine 0.
Habe bislang verschiedene if/else und try/catch konstrukte probiert, funktionieren aber nicht: Der Lister werden zuviele oder keine Stellen hinzugefügt.
Ich habe versucht, mit der Funktion iselelemnt("HZ001") zu arbeiten - fall der wert True ist, den Text der Liste anhängen, andernfalls eine Null anhängen. Das klappt nicht.
Beispiel:
Code: Alles auswählen
if (elementHz.iselement("HZ001")) == True :
tag = elementHz.text
hzContentList.append(tag)
elif (elementHz.iselement("HZ001")) == False :
hzContentList.append(0)
elif (elementHz.iselement("HZ0002")) == True :
tag = elementHz.text
hzContentList.append(tag)
elif (elementHz.iselement("HZ0002")) == False :
hzContentList.append(0)
Code: Alles auswählen
AttributeError: _ElementInterface instance has no attribute 'iselement'
Gibt es eine Funktion (für Python ab Version 2.5), die das kann oder hat jemand eine andere Idee, wie ich das Problem in den Griff bekomme?
Gruß,
Anton