This is the final example produced by the topics about automatic numbering with <xsl:number>
.
XML File (cardgame.xml)
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="cardgame_xslnum.xsl"?> <cardgame> <hand> <player name="Jack"> <card dealtID="card01"> <rank>Q</rank><suit>Clubs</suit> </card> <card dealtID="card02"> <rank>A</rank><suit>Spades</suit> </card> <card dealtID="card03"> <rank>10</rank><suit>Hearts</suit> </card> <tell>twitches nervously</tell> <card dealtID="card04"> <rank>8</rank><suit>Clubs</suit> </card> <card dealtID="card05"> <rank>4</rank><suit>Spades</suit> </card> <tell>squints</tell> </player> <player name="Jill"> <card dealtID="card06"> <rank>5</rank><suit>Diamonds</suit> </card> <card dealtID="card07"> <rank>5</rank><suit>Spades</suit> </card> <card dealtID="card08"> <rank>6</rank><suit>Clubs</suit> </card> <card dealtID="card09"> <rank>6</rank><suit>Spades</suit> </card> <card dealtID="card10"> <rank>10</rank><suit>Diamonds</suit> </card> <tell>grins</tell> </player> </hand> <hand> <player name="Jack"> <card dealtID="card11" replace="card03"> <rank>4</rank><suit>Diamonds</suit> </card> <tell>mutters, "Uh-oh..."</tell> <card dealtID="card12" replace="card04"> <rank>K</rank><suit>Spades</suit> </card> <card dealtID="card13" replace="card05"> <rank>7</rank><suit>Spades</suit> </card> <tell>tugs at left ear</tell> </player> <player name="Jill"> <card dealtID="card14" replace="card10"> <rank>K</rank><suit>Diamonds</suit> </card> <tell>sips her drink</tell> </player> </hand> </cardgame>
XSLT File (cardgame_xslnum.xsl)
This is the final version of the XSLT file for the topics about automatic numbering with <xsl:number>.
<?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40"> <!-- Template rule for the document root: --> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Card Game</TITLE> <STYLE type="text/css"> h1 {background-color: gold; font-family: Tahoma,Verdana,Arial,sans-serif; font-size: 24pt} h2 {background-color: yellow; font-family: Tahoma,Verdana,Arial,sans-serif; font-size: 18pt} h3 {background-color: white; font-family: Tahoma,Verdana,Arial,sans-serif; font-size: 14pt; font-weight: bold} th {background-color: silver; font-family: Tahoma,Verdana,Arial,sans-serif} td {background-color: white; font-family: Tahoma,Verdana,Arial,sans-serif} .page {width: 75%} .tell {font-weight: bold} </STYLE> </HEAD> <BODY> <DIV class="page"> <xsl:apply-templates/> </DIV> </BODY> </HTML> </xsl:template> <xsl:template match="hand"> <h1>Hand #<xsl:value-of select="position()"/></h1> <xsl:apply-templates/> </xsl:template> <xsl:template match="player"> <h2> Player <xsl:number level="multiple" format="1.1" count="hand | player"/>: <xsl:value-of select="@name"/> </h2> <table width="75%"> <tr> <th>Hand.Player.Card</th> <th>Rank/Suit</th> <th>Replaces</th> </tr> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="card"> <tr> <td align="center" width="30%"> <xsl:number level="multiple" format="1.1.01" count="hand | player | card"/> </td> <td width="40%"> <xsl:value-of select="rank"/> <xsl:text> of </xsl:text> <xsl:value-of select="suit"/> </td> <td> <xsl:choose> <xsl:when test="@replace"> <xsl:value-of select="preceding::card[@dealtID=current()/@replace]/rank"/> of <xsl:value-of select="preceding::card[@dealtID=current()/@replace]/suit"/> </xsl:when> <xsl:otherwise>--</xsl:otherwise> </xsl:choose> </td> </tr> </xsl:template> <xsl:template match="tell"> <tr> <td colspan="3" align="center" class="tell"> (Reaction #<xsl:number level="any" count="tell"/>: <xsl:value-of select="../@name"/> <xsl:text> </xsl:text> <xsl:value-of select="."/>) </td> </tr> </xsl:template> </xsl:stylesheet>
Formatted Output