我正在尝试用PHP阅读iTunes XML文件。我想提取特定的信息。如姓名,艺术家和专辑。我该怎么做?我发现this在解析整个文件时效果很好。我想也许可以使用它创建一个更易于阅读的全新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>
答案 0 :(得分:1)
我不认为解析文件然后创建更容易解析的另一个文件是正确的解决方案。你已经解析了主文件,为什么要做更多工作?
simplexml允许您相对轻松地导航XML对象,因此您应该能够获得所需的信息。我会使用simplexml_load_file()
或simplexml_load_string()
加载主文件,然后使用SimpleXMLElement::xpath来浏览生成的XML结构,以查找所需的数据。
答案 1 :(得分:0)
SimpleXML是内置的方法。 http://www.devshed.com/c/a/XML/SimpleXML/似乎是一个很好的教程,以及关于simpleXML的php.net部分。