2009-08-20 10 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 –

+0

出力Benに何が問題なのですか?必要なものを出力するためにそのオブジェクトを使用するか、または選択したDBに挿入するかのように見えます。 – Jakub