XML id zugreifen mit Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kjd
User
Beiträge: 12
Registriert: Freitag 12. Juli 2019, 09:48

Hallo,

ich habe diesen (gekürzten) Ausschnitt aus einer XML Datei:

Code: Alles auswählen

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
   </book>
</catalog>
Nun möchte ich das Element über die id finden. Ich habe diesen kurzen Code geschrieben:

Code: Alles auswählen

import xml.etree.ElementTree as ET
tree = ET.parse('books.xml')

tree.findall('.//book[bk101]')
Das einzige was ich hier rausbekomme, ist eine leere Liste. Ich weiß nicht, wieso mir das Element nicht angezeigt wird.

Danke im Voraus!
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@kjd: `findall()` wäre bei einer ID, die ja eindeutig sein muss, die falsche Methode. Und Du musst natürlich auch sagen, dass Du das `id`-Attribut meinst, und das Du das mit dem Wert vergleichen willst:

Code: Alles auswählen

In [83]: tree.find(".//book[@id='bk101']")                                      
Out[83]: <Element book at 0x7f64f57de908>
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
kjd
User
Beiträge: 12
Registriert: Freitag 12. Juli 2019, 09:48

@__blackjack__ Vielen Dank!
Antworten