Seite 1 von 1

etree und mehrere IDs

Verfasst: Donnerstag 13. September 2007, 12:00
von michote
Hallo,
Ich bin ein ziemlich blutiger Neuling in python und habe leider noch nicht sonderlich mehr als byteofpython gelesen ;-)
bin aber erstaunt wieviel sich mit ein bißchen Forensuche als newbie realisieren lässt. Großes Lob an die Moderatoren!

möchte versuchen ein screenlet zu schreiben
und eine "Kleinigkeit" fehlt mir noch zu meinem Glück.

ich will dazu eine xml-datei auslesen und habe in einigen threads gelesen das elementtree wohl am geeignesten dafür ist habe auch fast alles hin bekommen
(dank der vielen Beiträge von gerold zu dem Thema) bis auf eins:

Die Die auszulesenden Tags sehen so aus

Code: Alles auswählen

<TAG d="13" m="9">
  <TL>...
  <OT>...
</TAG>
wobei ich jeweils nach dem Tag mit dem aktuellen datum gesucht werden soll (es gibt eine xml-Datei pro Jahr)
soweit bin ich schon:

Code: Alles auswählen

root = ET.parse(datei).getroot()
tag = root.find("TAG ... ?
hier fehlt quasi der zwischenschritt der nach
<TAG d="tag" m="monat"> sucht (wobei 'tag' und 'monat' schon definierte variablen mit dem entsprechenden Datum sind)
damit ich dann hiermit weitermachen kann

Code: Alles auswählen

if not tag is None:
  ueberschr = tag.find ("TL")
  if not ueberschr is None:
    print ueberschr.text 
Ich bin für jede Hilfe Dankbar und ich hoffe ich habe mein Problem verständlich ausdrücken können.
Bitte schlagt mich nicht wenn ich irgendwo einen thread übersehen habe,
wo das schon anfängerverständlich beschrieben war ;-)

Danke schonmal
michote

Verfasst: Donnerstag 13. September 2007, 14:23
von BlackJack
Da wirst Du eine ganz gewöhnliche Schleife über die `<TAG>`\s schreiben müssen, die solange sucht bis sie eines mit dem gewünschten Datum gefunden hat.

Verfasst: Donnerstag 13. September 2007, 14:51
von michote
wie sähe das dann aus?
ich habe immer noch nicht ganz verstanden wie ich auf die ids richtig zugreife.

sorry ich bin noch ziemlich am anfang und aus den Englischen Anleitungen werde ich nicht wirklich schlau :oops:

Verfasst: Donnerstag 13. September 2007, 17:08
von BlackJack
Auf XML-Attribute greift man mit der `get()`-Methode auf dem entspechenden Element-Objekt zu:

Code: Alles auswählen

In [124]: tag.get('d'), tag.get('m')
Out[124]: ('13', '9')