ubuntuusers.de

xml datei auslesen

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

4.lex

Anmeldungsdatum:
22. November 2009

Beiträge: 39

Hallo, ich will eine XML-Datei mithilfe eines skriptes auslesen doch ich bekomme das einfach nicht hin. Es geht um folgende Datei: ~/.local/share/rhythmbox/playlists.xml

Sie ist wie folgt ausgebaut:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0"?>
<rhythmdb-playlists>
  <playlist name="Warteschlange" type="queue"/>
  <playlist name="Beste Bewertung" type="automatic" sort-key="Rating" sort-direction="1">
    <conjunction>
      <equals prop="type">song</equals>
      <subquery>
        <conjunction>
          <greater prop="rating">4.000000</greater>
        </conjunction>
      </subquery>
    </conjunction>
  </playlist>
  <playlist name="list1" type="static">
    <location>file:///home/alexander/file1.mp3</location>
    <location>file:///home/alexander/file2.mp3</location>
  </playlist>
  <playlist name="list2" type="static">
    <location>file:///home/alexander/file3.mp3</location>
    <location>file:///home/alexander/file4.mp3</location>
  </playlist>
</rhythmdb-playlists>

Playlisten, die nicht vom Typ "static" sind sollen ignoriert werden. nacher soll das skript zwei dateien erstellen:

list1:

/home/alexander/file1.mp3
/home/alexander/file2.mp3

list2:

/home/alexander/file3.mp3
/home/alexander/file4.mp3

Hat jemand ne idee wie das skript aussehen kann? ich bekomms einfach nicht hin =(

Grüße und schonmal tausend dank! =)

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Büdde: Python-Script

4.lex

(Themenstarter)

Anmeldungsdatum:
22. November 2009

Beiträge: 39

tausend dank!! nur leider gibt mir das skript einen Fehler aus:

alexander@alexander-laptop:~/Desktop$ /home/alexander/Desktop/playlist.py /home/alexander/Desktop/playlists.xml
Traceback (most recent call last):
  File "/home/alexander/Desktop/playlist.py", line 42, in <module>
    from lxml import etree
ImportError: No module named lxml

Hast du ne Idee, woran das liegen können? ich kenn mcih mt python leider gar nicht aus =(

hellboy195 Team-Icon

Avatar von hellboy195

Anmeldungsdatum:
3. August 2006

Beiträge: 328

Wohnort: Wien

4.lex schrieb:

tausend dank!! nur leider gibt mir das skript einen Fehler aus:

alexander@alexander-laptop:~/Desktop$ /home/alexander/Desktop/playlist.py /home/alexander/Desktop/playlists.xml
Traceback (most recent call last):
  File "/home/alexander/Desktop/playlist.py", line 42, in <module>
    from lxml import etree
ImportError: No module named lxml

Hast du ne Idee, woran das liegen können? ich kenn mcih mt python leider gar nicht aus =(

apt-cache search lxml sagt unter anderem: python-lxml - pythonic binding for the libxml2 and libxslt libraries 😉

Also installier das mal und probiers nochmals

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Installiere das Paket python-lxml.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Jo, sorry. Hätte ich erwähnen sollen, da das Modul lxml nicht Bestandteil der Standard Bibliothek ist.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Wobei es eigentlich auch nicht zuviel verlangt ist, nach „lxml“ zu suchen …

4.lex

(Themenstarter)

Anmeldungsdatum:
22. November 2009

Beiträge: 39

Tausend dank euch allen, jetzt funktioniert es tadellos. Vor allem Danke dir, Lysander =) !!!

*edit* eine frage hätte ich noch: wie muss ich das skript ändern, dass die ausgabedateien nicht als list1/list2 sondern also list1.playlist und list2.playlist erstellt werden?

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

4.lex schrieb:

eine frage hätte ich noch: wie muss ich das skript ändern, dass die ausgabedateien nicht als list1/list2 sondern also list1.playlist und list2.playlist erstellt werden?

Du müßtest Zeile 59 abändern. Ich denke das sollte tun:

1
fname = ".".join((plist.get("name"), "playlist"))

4.lex

(Themenstarter)

Anmeldungsdatum:
22. November 2009

Beiträge: 39

ja tut wunderbar =) DANKE!!

Antworten |