im etree ein Node finden und auf dessen Subnodes dann zugreifen?
Verfasst: Donnerstag 26. November 2015, 22:38
Hallo Leute,
ich hätte da mal wieder ein Problem:
Ich parse mit etree ein XML-Dokument und finde soweit über XPath meine Nodes.
Jetzt habe ich im gefundenen Node noch 2 weitere SubElemente und weis nicht wie ich beim 'iterieren' auf diese zugreifen kann.
Also folgendes Beispiel:
[Codebox=xml file=Unbenannt.xml]
<stadt>
<bundesland>BW</bundesland>
<sehenswürdigkeiten>
<öffentlich>
<museum>Irgendein Museum</museum>
</öffentlich>
<privat>
<tanzbar>Joeys</tanzbar>
</privat>
</sehenswürdigkeiten>
</stadt>
[/Codebox]
Ich finde nun per
An der Stelle '#Element' würde ich gerne nun einmal den 'öffentlich'- und einmal den 'privat'-Node zugreifen und das schaffe ich einfach nicht. Ich habe gegoogelt und finde zwar immer die ganzen Methoden dieser Klasse, aber die bringen mich nicht weiter. Entweder hagelt es fehlermeldungen oder beim ausgeben bekomme ich ein 'None' ausgegeben....
Ich dachte mir ich könnte mit dem 'elem' (bei der Iteration) genauso verfahren wie mit dem tree selber.
Also z.B. ein Zugriff wie folgt:
Kann mir jemand hier sagen wie ich das anstellen soll?
Ich finde also ein Node mit weiteren Subnodes die aber immer in dieser 'Gruppierung' auftauchen sollen (o.g. Beispiel ist nur ein Beispiel und macht vielleicht keinen Sinn. In meinem Projekt schon und daher: stellt es euch einfach vor das dies Sinn erbigt). Und ich möchte das gefundene Node auf seine Subnodes untersuchen und Inhalte bzw. Attribute extrahieren....
Ich hoffe es ist einigermaßen verständlich was ich hier zu beschriben versuche...
Ich danke euch schon einmal im Voraus für eure Mühe.
ich hätte da mal wieder ein Problem:
Ich parse mit etree ein XML-Dokument und finde soweit über XPath meine Nodes.
Jetzt habe ich im gefundenen Node noch 2 weitere SubElemente und weis nicht wie ich beim 'iterieren' auf diese zugreifen kann.
Also folgendes Beispiel:
[Codebox=xml file=Unbenannt.xml]
<stadt>
<bundesland>BW</bundesland>
<sehenswürdigkeiten>
<öffentlich>
<museum>Irgendein Museum</museum>
</öffentlich>
<privat>
<tanzbar>Joeys</tanzbar>
</privat>
</sehenswürdigkeiten>
</stadt>
[/Codebox]
Ich finde nun per
Code: Alles auswählen
for elem in root.findall('./stadt/sehenwürdigkeiten/'):
#Element welches nun 'bearbeitet' werden können sollte
Ich dachte mir ich könnte mit dem 'elem' (bei der Iteration) genauso verfahren wie mit dem tree selber.
Also z.B. ein Zugriff wie folgt:
Code: Alles auswählen
print elem.find('privat').text #oder attrib oder sonstwas
Ich finde also ein Node mit weiteren Subnodes die aber immer in dieser 'Gruppierung' auftauchen sollen (o.g. Beispiel ist nur ein Beispiel und macht vielleicht keinen Sinn. In meinem Projekt schon und daher: stellt es euch einfach vor das dies Sinn erbigt). Und ich möchte das gefundene Node auf seine Subnodes untersuchen und Inhalte bzw. Attribute extrahieren....
Ich hoffe es ist einigermaßen verständlich was ich hier zu beschriben versuche...
Ich danke euch schon einmal im Voraus für eure Mühe.