2
XSLT를 배우기 위해 다음과 같은 XML 파일과 XSLT 스타일 시트가 있습니다. 스코어 3*goals + 2*assists
뒤에 순위가 매겨진 선수들의 목록을 만들고 싶습니다.XSLT 1.0의 정렬 문제
<?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>
(오페라와 파이어 폭스 모두 시도) 브라우저에서 스타일 시트
<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"/>
with score
<xsl:value-of select="soc:goals * 3 + 2 * soc:assists"/>
<br/>
</xsl:template>
</xsl:stylesheet>
는
Overall ranking
Laudrup with score 83
Pelé with score 81
Gullit with score 81
Hagi with score 67
Beckenbauer with score 57
Spiderman with score 157
는 스파이더 맨이 목록의 상단에 나타납니다 생산하고 있습니다. 누군가 내 오류를 지적 할 수 있습니까?
내가 version="1.0"
를 사용하여 같은 스타일 시트에 version="2.0"
사용한 Error loading stylesheet: Parsing an XSLT stylesheet failed.
D' oh! 고맙습니다. –