When you finish the tutorial, Transform.xsl is as follows:
<?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:param name="low_sales" select="21000"/> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="//summary/heading"/></title> </head> <body> <xsl:variable name="ancillary" select="document('ancillary.xml')"/> <div style="position:absolute;font-size:96;font-family:Times New Roman; color:#F0F0F0;z-index:-1"> <xsl:value-of select="$ancillary//watermark"/> </div> <h1><xsl:value-of select="//summary/heading"/></h1> <h2><xsl:value-of select="//summary/subhead"/></h2> <p><xsl:value-of select="//summary/description"/></p> <table> <!-- create table heading row, filling in the quarter numbers from left to right --> <tr> <th>Region\Quarter</th> <xsl:for-each select="//data/region[1]/quarter"> <th>Q<xsl:value-of select="@number"/></th> </xsl:for-each> <th>Total</th> </tr> <!-- create a table body row for each quarter, for each region, filling cells with the number of books sold --> <xsl:for-each select="//data/region"> <tr> <th style="text-align:left"><xsl:value-of select="name"/></th> <xsl:for-each select="quarter"> <td> <xsl:attribute name="style"> <xsl:choose> <xsl:when test="number(@books_sold <= $low_sales)"> color:red;</xsl:when> <xsl:otherwise>color:green;</xsl:otherwise> </xsl:choose> text-align:right; </xsl:attribute> <xsl:value-of select="format-number(@books_sold,'###,###')"/> </td> </xsl:for-each> <td style="text-align:right;font-weight:bold;"> <xsl:value-of select="format-number(sum(quarter/@books_sold),'###,###')"/> </td> </tr> </xsl:for-each> </table> <div style="font-size:9"> <xsl:value-of select="$ancillary//copyright"/> </div> </body> </html> </xsl:template> </xsl:stylesheet>