Ich möchte gerne eine xml Datei auslesen. Nach einiger Recherche bin ich auf ElementTree gestoßen, welches für mich so aussieht, als könnte es funktionieren.
So wie ich es jedoch versuche scheint es mir ein wenig plump und unelegant.
Da muss es doch andere Möglichkeiten geben?!
Hier habe ich eine xml Datei, welche aus Rhythmbox stammt. Aus dieser möchte ich die statischen Playlisten (type="static") auslesen und die enthaltenen Lieder zusammen mit dem Namen der Liste in einer Liste speichern.
playlist.xml
Code: Alles auswählen
<?xml version="1.0"?>
<rhythmdb-playlists>
<playlist name="Beste Bewertung" type="automatic" sort-key="Rating" sort-direction="1">
<conjunction>
<equals prop="type">song</equals>
<subquery>
<conjunction>
<greater prop="rating">1,000000</greater>
</conjunction>
</subquery>
</conjunction>
</playlist>
<playlist name="Test" type="static">
<location>file:///lied1.mp3</location>
<location>file:///lied2.mp3</location>
</playlist>
<playlist name="Test2" type="static">
<location>file:///lied3.mp3</location>
<location>file:///lied4.mp3</location>
</playlist>
</rhythmdb-playlists>
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
from xml.etree.ElementTree import ElementTree
try:
root = ElementTree(file="playlists.xml")
except:
print "ERROR: No valid XML-File"
exit()
iter = root.getiterator("playlist")
for item in iter:
if item.keys():
for name, wert in item.items():
if name == "type" and wert == "static":
print "Eine gefunden"
for child in item:
print child.text
Vielen Dank!
PS: Was ist eigentlich iter ??? ich habe das aus einem Tutorial übernommen, finde jedoch keine halbwegs gute Erklärung.