|
NOTE:
These slides have not been updated since 2003. They have been superseded by the book
Anders Møller and Michael Schwartzbach, February 2006 |
|
| THE XML REVOLUTION - TECHNOLOGIES FOR THE FUTURE WEB |
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="collection">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><xsl:apply-templates select="description"/></title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<table border="1">
<xsl:apply-templates select="recipe"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="description">
<xsl:value-of select="text()"/>
</xsl:template>
<xsl:template match="recipe">
<tr>
<td>
<h1>
<xsl:apply-templates select="title"/>
</h1>
<ul>
<xsl:apply-templates select="ingredient"/>
</ul>
<xsl:apply-templates select="preparation"/>
<xsl:apply-templates select="comment"/>
<xsl:apply-templates select="nutrition"/>
</td>
</tr>
</xsl:template>
<xsl:template match="ingredient">
<xsl:choose>
<xsl:when test="@amount">
<li>
<xsl:if test="@amount!='*'">
<xsl:value-of select="@amount"/>
<xsl:text> </xsl:text>
<xsl:if test="@unit">
<xsl:value-of select="@unit"/>
<xsl:if test="number(@amount)>number(1)">
<xsl:text>s</xsl:text>
</xsl:if>
<xsl:text> of </xsl:text>
</xsl:if>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="@name"/>
</li>
</xsl:when>
<xsl:otherwise>
<li><xsl:value-of select="@name"/>
<ul>
<xsl:apply-templates select="ingredient"/>
</ul>
<xsl:apply-templates select="preparation"/>
</li>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="preparation">
<ol><xsl:apply-templates select="step"/></ol>
</xsl:template>
<xsl:template match="step">
<li><xsl:value-of select="node()"/></li>
</xsl:template>
<xsl:template match="comment">
<ul>
<li type="square"><xsl:value-of select="node()"/></li>
</ul>
</xsl:template>
<xsl:template match="nutrition">
<table border="2">
<tr>
<th>Calories</th><th>Fat</th><th>Carbohydrates</th><th>Protein</th>
<xsl:if test="@alcohol">
<th>Alcohol</th>
</xsl:if>
</tr>
<tr>
<td align="right"><xsl:value-of select="@calories"/></td>
<td align="right"><xsl:value-of select="@fat"/>%</td>
<td align="right"><xsl:value-of select="@carbohydrates"/>%</td>
<td align="right"><xsl:value-of select="@protein"/>%</td>
<xsl:if test="@alcohol">
<td align="right"><xsl:value-of select="@alcohol"/>%</td>
</xsl:if>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
|
|
| COPYRIGHT © 2000-2003 ANDERS MØLLER & MICHAEL I. SCHWARTZBACH |
|