0
我需要從iTunes Music Library.xml文件中提取信息。由於xml是plist的形式,所以它變得有點麻煩。使用XSLT從iTunes音樂庫XML中提取信息?
我想從一個特定播放列表中獲取所有音軌ID的列表,這個列表的播放列表ID是我的。
例如,iTunes播放列表如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Playlists</key>
<array>
<dict>
<key>Name</key><string>Library</string>
<key>Master</key><true/>
<key>Playlist ID</key><integer>4053</integer> <!--Ex:4053 I have.-->
<key>Playlist Items</key>
<array>
<dict>
<key>Track ID</key><integer>2413</integer>
</dict>
<dict>
<key>Track ID</key><integer>2083</integer>
</dict>
<dict>
<key>Track ID</key><integer>2081</integer>
</dict>
<dict>
<key>Track ID</key><integer>6798</integer>
</dict>
</array>
<dict>
<!-- Here another playlist will start. with diff playlist ID -->
<array>
</dict>
</plist>
有關詳細信息,可以查看您的Itunes Music Library.xml。
基本上,我需要的是這個。 (a)給定播放列表ID(此處爲4053),打印該播放列表下的所有曲目ID值(此處爲:2413,2083,2081,6798)。
我嘗試:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:for-each select="plist/dict/array/dict">
<xsl:choose>
<xsl:when test="child::integer[preceding-sibling::key[1]='Playlist ID']=4053">
<!-- condition is not working fine, Below lines are working fine -->
<xsl:for-each select="plist/dict/array/dict/array/dict">
<xsl:value-of select="child::integer[preceding-sibling::key[1]='Track ID']"/>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XSLT的任何專家可以幫助我在這裏。我會很高興。
請輸入一個有效的XML,它現在不是一個有效的XML(結束標記丟失)。如果您顯示樣本所需的輸出,這將會很有幫助。 – therealmarv
嗨「therealmarv」,我修改了我的問題。基本上我解析iTunes音樂library.xml文件。如果你安裝了iTunes,你可以檢查庫xml以更好地理解xml格式。但我已經在上面解釋過了。謝謝。 –
Mac OS X :(用於iTunes庫文件的路徑) **/Users/username/Music/iTunes/iTunes Library.xml ** Windows XP ** \ Documents and Settings \ username \ My Documents \ My Music \ iTunes \ iTunes Library.xml ** Windows Vista ** \ Users \ username \ Music \ iTunes \ iTunes Library.xml ** Windows 7 ** \ Users \ username \ My Music \ iTunes \ iTunes Library.xml ** –