Einzelnen Beitrag anzeigen

-Pinguin-

Registriert seit: 17. Mai 2005
5 Beiträge
 
Delphi 7 Professional
 
#1

Prob: iTunes XML Datei auslesen?!

  Alt 1. Jul 2005, 13:32
Hallo liebe Community,

ich bin gerade dabei ein Programm zu coden, dass das Apple Programm iTunes unterstützen soll.

Zweck des Programms: mp3 Datein löschen, die in der Playlist als "Deaktiviert" markiert sind.

Okay. Soweit so gut.

Ich bin grade am xml auslese Teil. Und da tuen sich gerade ein paar Probleme auf, wo ich immoment keine Ahnung habe, wie ich die Lösen soll.

Damit ihr die Apple XML Strukture, ich wie ich finde, sehr schlecht ist, kennen lernt, poste ich mal einen kleinen ausschnitt aus einer Bsp Datei.

Delphi-Quellcode:
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Major Version</key><integer>1</integer>
   <key>Minor Version</key><integer>1</integer>
   <key>Application Version</key><string>4.7</string>
   <key>Music Folder</key><string>file://localhost/C:/Dokumente%20und%20Einstellungen/xxxxxxx/Eigene%20Dateien/Eigene%20Musik/iTunes/iTunes%20Music/</string>
   <key>Library Persistent ID</key><string>7A6D18B191224599</string>
   <key>Tracks</key>
   <dict>
      <key>2899</key>
      <dict>
         <key>Track ID</key><integer>2899</integer>
         <key>Name</key><string>Schnappi - Das kleine Krokodil</string>
         <key>Artist</key><string>Schnappi</string>
         <key>Album</key><string>German Top100 Single Charts</string>
         <key>Genre</key><string>Pop</string>
         <key>Kind</key><string>MPEG-Audiodatei</string>
         <key>Size</key><integer>3117184</integer>
         <key>Total Time</key><integer>129802</integer>
         <key>Year</key><integer>2005</integer>
         <key>Date Modified</key><date>2005-02-18T22:53:48Z</date>
         <key>Date Added</key><date>2005-02-21T18:49:23Z</date>
         <key>Bit Rate</key><integer>192</integer>
         <key>Sample Rate</key><integer>44100</integer>
         <key>Comments</key><string>MiNiSTRY</string>
         <key>Disabled</key><true/>
         <key>Track Type</key><string>File</string>
         <key>Location</key><string>file://localhost/I:/Anwendungs_Space/xxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxx/001-schnappi_-_das_kleine_krokodil-ministry.mp3/</string>
         <key>File Folder Count</key><integer>-1</integer>
         <key>Library Folder Count</key><integer>-1</integer>
      </dict>
      <key>2900</key>
      <dict>
         <key>Track ID</key><integer>2900</integer>
         <key>Name</key><string>Chipz In Black</string>
         <key>Artist</key><string>Chipz</string>
         <key>Album</key><string>German Top100 Single Charts</string>
         <key>Genre</key><string>Pop</string>
         <key>Kind</key><string>MPEG-Audiodatei</string>
         <key>Size</key><integer>4409472</integer>
         <key>Total Time</key><integer>183640</integer>
         <key>Year</key><integer>2005</integer>
         <key>Date Modified</key><date>2005-02-21T18:50:26Z</date>
         <key>Date Added</key><date>2005-02-21T18:49:27Z</date>
         <key>Bit Rate</key><integer>192</integer>
         <key>Sample Rate</key><integer>44100</integer>
         <key>Comments</key><string>MiNiSTRY</string>
         <key>Play Count</key><integer>4</integer>
         <key>Play Date</key><integer>-1101918061</integer>
         <key>Play Date UTC</key><date>2005-03-07T13:07:15Z</date>
         <key>Track Type</key><string>File</string>
         <key>Location</key><string>file://localhost/I:/Anwendungs_Space/xxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxx/002-chipz_-_chipz_in_black-ministry.mp3/</string>
         <key>File Folder Count</key><integer>-1</integer>
         <key>Library Folder Count</key><integer>-1</integer>
      </dict>
      <key>2901</key>
      <dict>
         <key>Track ID</key><integer>2901</integer>
         <key>Name</key><string>Und Wenn Ein Lied</string>
         <key>Artist</key><string>Soehne Mannheims</string>
         <key>Album</key><string>German Top100 Single Charts</string>
         <key>Genre</key><string>Pop</string>
         <key>Kind</key><string>MPEG-Audiodatei</string>
         <key>Size</key><integer>5875840</integer>
         <key>Total Time</key><integer>244741</integer>
         <key>Year</key><integer>2005</integer>
         <key>Date Modified</key><date>2005-02-21T18:53:32Z</date>
         <key>Date Added</key><date>2005-02-21T18:49:29Z</date>
         <key>Bit Rate</key><integer>192</integer>
         <key>Sample Rate</key><integer>44100</integer>
         <key>Play Count</key><integer>2</integer>
         <key>Play Date</key><integer>-1103097017</integer>
         <key>Play Date UTC</key><date>2005-02-21T21:37:59Z</date>
         <key>Track Type</key><string>File</string>
         <key>Location</key><string>file://localhost/I:/Anwendungs_Space/xxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxx/003-soehne_mannheims_-_und_wenn_ein_lied-ministry.mp3/</string>
         <key>File Folder Count</key><integer>-1</integer>
         <key>Library Folder Count</key><integer>-1</integer>
      </dict>
Was soll das Programm machen: Das Programm soll alle Lieder rausfiltern, die <key>Disabled</key> haben und dann den TrackID, Namen, Artist, Größe auslesen und in eine ComboBox schreiben.

So da sind wir dann schon beim Problem.
Wie markiere ich denn den Nood eigentlich? Wie sag ich welches dict ich meine? Dass er bei dem 3. dict anfangen soll zu suchen, dass das der Hauptnood ist? Und wie durchsuch ich dann die Datei nach dem Kriterium? Und dann gibt es ja schon wieder ein Problem. Bei allen Unternoods von einem Lied steht immer <key> xxxxx </key> Wie soll ich Delphi denn klar machen was er auslesen soll? Und dann ist das ja immer so, dass das Value was ich auslesen will immer eine Zeile drunter steht. z.B. <key>Name</key>
<string>Chipz In Black</string>


Ich hoffe, jemand von euch, kann mir helfen. Ich wäre euch sehr dankbar.

thx

bye
Pinguin
  Mit Zitat antworten Zitat