Problems with sorting in XSLT 1.0 -
Problems with sorting in XSLT 1.0 -
playing around in order larn xslt, have next xml file , xslt stylesheet. want produce list of players ranked after score 3*goals + 2*assists
.
<?xml-stylesheet type="text/xsl" href="player_ranking.xsl"?> <soccer xmlns="http://mysoccer.it"> <players> <player> <name>pelé</name> <goals>21</goals> <assists>9</assists> </player> <player> <name>beckenbauer</name> <goals>7</goals> <assists>18</assists> </player> <player> <name>spiderman</name> <goals>27</goals> <assists>38</assists> </player> <player> <name>hagi</name> <goals>13</goals> <assists>14</assists> </player> <player> <name>laudrup</name> <goals>11</goals> <assists>25</assists> </player> <player> <name>gullit</name> <goals>17</goals> <assists>15</assists> </player> </players> </soccer>
style sheet
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:soc="http://mysoccer.it" xmlns="http://www.w3.org/1999/xhtml"> <xsl:template match="soc:soccer"> <html> <head> <title>famous players ranked</title> </head> <body> <h1>overall ranking</h1> <xsl:apply-templates match="soc:players"/> </body> </html> </xsl:template> <xsl:template match="soc:players"> <xsl:apply-templates select="soc:player"> <xsl:sort select="soc:goals * 3 + 2 * soc:assists" order="descending"/> </xsl:apply-templates> </xsl:template> <xsl:template match="soc:player"> <xsl:value-of select="soc:name"/> score <xsl:value-of select="soc:goals * 3 + 2 * soc:assists"/> <br/> </xsl:template> </xsl:stylesheet>
in browser (tried both opera , firefox) produces
overall ranking laudrup score 83 pelé score 81 gullit score 81 hagi score 67 beckenbauer score 57 spiderman score 157
spiderman should appear on top of list. can point out error ?
i have used version="2.0"
in style sheet using version="1.0"
gives me error loading stylesheet: parsing xslt stylesheet failed.
looks doing alphanumeric sort, 1 < 5 etc
try changing sort line to:
<xsl:sort select="soc:goals * 3 + 2 * soc:assists" data-type="number" order="descending"/>
xslt
Comments
Post a Comment