2009-08-20 80 views
2

我正在嘗試使用PHP讀取iTunes XML文件。我想提取特定位的信息。如姓名,藝術家和專輯。我將如何做到這一點?我發現this解析整個文件時效果很好。我想也許用這個來創建一個更容易閱讀的全新XML文件。使用PHP讀取iTunes 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> 

回答

1

我不認爲解析文件,然後創建更容易解析的另一個文件是正確的解決方案。你已經解析了主文件,爲什麼還要做更多的工作?

simplexml允許您相對容易地導航XML對象,所以您應該能夠獲取所需的信息。我將使用simplexml_load_file()simplexml_load_string()加載主文件,然後可能SimpleXMLElement::xpath導航您的結果XML結構來查找所需的數據。

+0

我不能用簡單的XML來做到這一點。當我用它解析一個軌道節點時,就會出現這樣的情況。 http://pastebin.com/f19eca19c – 2009-08-20 17:30:39

+0

輸出Ben有什麼問題?看起來你有一個對象,然後使用該對象輸出你需要的東西,或插入到你選擇的數據庫中。 – Jakub 2009-08-20 17:36:13