Чтение iTunes XML-файла с помощью PHP - PullRequest
2 голосов
/ 20 августа 2009

Я пытаюсь прочитать XML-файл iTunes с помощью PHP. Я хочу извлечь определенные биты информации. Такие как Имя, Исполнитель и Альбом. Как бы я это сделал? Я нашел этот , который работает довольно хорошо при разборе всего файла. Я подумал, возможно, используя это, чтобы создать совершенно новый XML-файл, который легче читать.

Но должен быть лучший способ.

Структура XML для трека выглядит следующим образом:

<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>

Ответы [ 2 ]

1 голос
/ 20 августа 2009

Я не думаю, что синтаксический анализ файла, а затем создание другого файла, который легче анализировать, является правильным решением. Вы уже проанализировали основной файл, так зачем делать больше работы?

simplexml позволяет вам с относительной легкостью перемещаться по объекту XML, поэтому вы сможете получить необходимую информацию. Я бы использовал simplexml_load_file() или simplexml_load_string() для загрузки основного файла, а затем, вероятно, SimpleXMLElement :: xpath для навигации по полученной структуре XML для поиска нужных данных.

0 голосов
/ 20 августа 2009

SimpleXML - встроенный способ сделать это. http://www.devshed.com/c/a/XML/SimpleXML/ кажется хорошим учебником, а также разделом php.net по simpleXML.

...