Seite 1 von 1

XML id zugreifen mit Python

Verfasst: Montag 18. Mai 2020, 12:53
von kjd
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!

Re: XML id zugreifen mit Python

Verfasst: Montag 18. Mai 2020, 13:22
von __blackjack__
@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>

Re: XML id zugreifen mit Python

Verfasst: Montag 18. Mai 2020, 14:11
von kjd
@__blackjack__ Vielen Dank!