Кажется, у меня проблема с файлом xml или xsl. Вот что должно произойти
Файл XMl содержит голоса, когда он отображается, он должен сортировать и упорядочивать результаты по рангу # голосов и процентам и отображать результаты. Все выглядит правильно, за исключением того, что процент голосов далеко.
Что я делаю не так?
код XMl
<?xml-stylesheet type="text/xsl" href="os.xsl" ?>
<poll>
<ballot id="b1">
<os>Windows Server 2003 Standard</os>
<os>Suse Linux</os>
</ballot>
<ballot id="b2">
<os>Windows Server 2003 Standard</os>
<os>Ubuntu Linux</os>
</ballot>
<ballot id="b3">
</ballot>
<ballot id="b4">
<os>Windows Server 2003 Standard</os>
<os>Debin Linux</os>
</ballot>
<ballot id="b5">
<os>Suse Linux</os>
<os>Windows Server 2003 Standard</os>
<os>Debin Linux</os>
</ballot>
<ballot id="b6">
<os>Suse Linux</os>
<os>Ubuntu Linux</os>
<os>Windows Server 2008 Standard</os>
<os>Debin Linux</os>
</ballot>
<ballot id="b7">
<os>Debin Linux</os>
<os>Ubuntu Linux</os>
<os>Debin Linux</os>
</ballot>
<ballot id="b8">
<os>Windows Server 2008 Standard</os>
<os>Debin Linux</os>
<os>Ubuntu Linux</os>
<os>Suse Linux</os>
<os>Debin Linux</os>
</ballot>
</poll>
XSL код начинается ниже
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--
-->
<xsl:key name="oss" match="os" use="."/>
<xsl:variable name="single-os" select="//os[generate-id(.) = generate-id(key('oss', .))]/."/>
<xsl:template match="/">
<html>
<head>
<title>Top Customer Server OS</title>
<link href="os.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h2>Top Customer Server OS </h2>
<table border="0" width="550">
<tr><td colspan="4">Number of the Ballots: <xsl:value-of select="count(poll/ballot)"/></td></tr>
<tr>
<th>Rank</th>
<th>os</th>
<th>Votes</th>
<th>%</th>
</tr>
<xsl:for-each select="$single-os">
<xsl:sort select="count(key('oss', current()))" order="descending" data-type="number" />
<xsl:variable select="count(key('oss', current()))" name="votes" />
<tr>
<td><xsl:value-of select="position()" />.</td>
<td>
<xsl:value-of select="." />
</td>
<td align="right"><xsl:value-of select="$votes" /></td>
<td align="right"><xsl:value-of select="format-number($votes div count(//ballot), '#.00%')" /></td>
</tr>
<xsl:if test="position() mod 10 = 0">
<tr>
<td colspan="4"><hr /></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>