2

PHPでiTunesXMLファイルを読み込もうとしています。特定の情報を抽出したい。名前、アーティスト、アルバムなど。どうすればいいですか?これは、ファイル全体を解析するときに非常にうまく機能することがわかりました。おそらくこれを使って、読みやすいまったく新しい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>
4

2 に答える 2

1

ファイルを解析してから、解析しやすい別のファイルを作成することが正しい解決策だとは思いません。すでにメインファイルを解析しているのに、なぜもっと作業をするのですか?

simplexmlを使用すると、XMLオブジェクトを比較的簡単にナビゲートできるため、必要な情報を取得できるはずです。simplexml_load_file()またはを使用simplexml_load_string()してメインファイルをロードし、次にSimpleXMLElement :: xpathを使用して、結果のXML構造をナビゲートし、必要なデータを見つけます。

于 2009-08-20T17:06:16.990 に答える
0

SimpleXMLは、これを行うための組み込みの方法です。http://www.devshed.com/c/a/XML/SimpleXML/は、simpleXMLのphp.netセクションと同様に、優れたチュートリアルのようです。

于 2009-08-20T17:03:15.670 に答える