Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries [Thread Prev] >Thread Next - Re: Some calculation Some calculationTo: NULL Date: 8/28/2007 2:57:00 PM
The following reads my iTunes Music Library.xml:
What I'd like to do is to have another column that would look up
Rating, and convert the value 80 into ****, the way iTunes does. (zero
to 5 stars = nothing, 20, 40, 60, 80, & 100)
=============================================
Here's my current XML, followed by a segment of my iTunes Music
Library.xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- match the wrapper and apply templates to the <incl> xml file
-->
<xsl:template match="/wrapper">
<xsl:apply-templates select="document(incl/@file)"/>
</xsl:template>
<xsl:key name="songsByAlbum" match="dict"
use="string[preceding-sibling::key[1]='Album']"/>
<xsl:template match="/plist/dict/dict">
<html>
<body>
<table>
<xsl:for-each select="dict[generate-id(.)=
generate-id(key('songsByAlbum',string)[1])]">
<xsl:sort
select="string[preceding-sibling::key[1]='Album']"/>
<tr>
<td><xsl:value-of
select="string[preceding-sibling::key[1]='Album']"/></td>
<td><xsl:value-of
select="string[preceding-sibling::key[1]='Artist']"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
==============================
This produces
A Little Moonlight Dianne Reeves
from
=================================
<key>1129</key>
<dict>
<key>Track ID</key><integer>1129</integer>
<key>Name</key><string>Loads Of Love</string>
<key>Artist</key><string>Dianne
Reeves</string>
<key>Composer</key><string>Richard
Rodgers</string>
<key>Album</key><string>A Little
Moonlight</string>
<key>Genre</key><string>Jazz</string>
<key>Kind</key><string>Apple Lossless audio
file</string>
<key>Size</key><integer>25290093</integer>
<key>Total Time</key><integer>264386</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>1</integer>
<key>Track Number</key><integer>1</integer>
<key>Track Count</key><integer>10</integer>
<key>Year</key><integer>2003</integer>
<key>Date
Modified</key><date>2007-05-14T13:36:33Z</date>
<key>Date
Added</key><date>2007-04-24T13:09:16Z</date>
<key>Bit Rate</key><integer>764</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>2</integer>
<key>Play
Date</key><integer>3264067343</integer>
<key>Play Date
UTC</key><date>2007-06-07T19:22:23Z</date>
<key>Rating</key><integer>80</integer>
<key>Sort Album</key><string>Little
Moonlight</string>
<key>Persistent
ID</key><string>C3364E67232519D7</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/C:/Documents%20and%20Settings/brazee/My%20Documents/My%20Music/iTunes/iTunes%20Music/Dianne%20Reeves/A%20Little%20Moonlight/01%20Loads%20Of%20Love.m4a</string>
<key>File Folder
Count</key><integer>4</integer>
<key>Library Folder
Count</key><integer>1</integer>
</dict>
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
