2009-08-20 8 views
2

J'essaie de lire le fichier XML iTunes avec PHP. Je veux extraire des informations particulières. Tels que le nom, l'artiste et l'album. Comment ferais-je cela? J'ai trouvé this qui fonctionne très bien lors de l'analyse de l'ensemble du fichier. Je pensais peut-être l'utiliser pour créer un tout nouveau fichier XML qui est plus facile à lire.Lire le fichier XML iTunes avec PHP

Mais il doit y avoir un meilleur moyen.

La structure XML pour une piste ressemble à ceci:

<dict> 
    <key>Track ID</key><integer>6136</integer> 
    <key>Name</key><string>The Boy Who Destroyed the World</string> 
    <key>Artist</key><string>AFI</string> 
    <key>Album Artist</key><string>AFI</string> 
    <key>Composer</key><string>AFI</string> 
    <key>Album</key><string>Tony Hawk Pro Skater 3</string> 
    <key>Genre</key><string>Punk Rock</string> 
    <key>Kind</key><string>MPEG audio file</string> 
    <key>Size</key><integer>2971924</integer> 
    <key>Total Time</key><integer>185364</integer> 
    <key>Track Number</key><integer>3</integer> 
    <key>Year</key><integer>1999</integer> 
    <key>Date Modified</key><date>2009-08-20T15:03:20Z</date> 
    <key>Date Added</key><date>2009-08-20T15:03:20Z</date> 
    <key>Bit Rate</key><integer>128</integer> 
    <key>Sample Rate</key><integer>44100</integer> 
    <key>Play Count</key><integer>34</integer> 
    <key>Play Date</key><integer>3332385360</integer> 
    <key>Play Date UTC</key><date>2009-08-06T05:36:00Z</date> 
    <key>Sort Name</key><string>Boy Who Destroyed the World</string> 
    <key>Persistent ID</key><string>9E590180768D4AD8</string> 
    <key>Track Type</key><string>File</string> 
    <key>Location</key><string>FilePath</string> 
    <key>File Folder Count</key><integer>4</integer> 
    <key>Library Folder Count</key><integer>1</integer> 
</dict> 

Répondre

1

Je ne pense pas que l'analyse du fichier, puis la création d'un autre fichier qui est plus facile à analyser est la bonne solution. Vous aurez déjà analysé le fichier principal, alors pourquoi faire plus de travail?

simplexml vous permet de naviguer dans un objet XML avec une relative facilité, vous devriez donc être en mesure d'obtenir l'information que vous voulez. Je voudrais utiliser simplexml_load_file() ou simplexml_load_string() pour charger le fichier principal, puis probablement SimpleXMLElement::xpath pour naviguer dans votre structure XML résultant pour trouver les données que vous voulez.

+0

Je ne peux pas le faire avec Simple XML. Quand j'analyse un nœud de piste avec, il sort comme ça. http://pastebin.com/f19eca19c –

+0

Quel est le problème avec la sortie Ben? On dirait que vous avez un objet, puis utilisez simplement cet objet pour sortir ce dont vous avez besoin, ou insérez-le dans une BD de votre choix. – Jakub