I'm transforming a simple XML document into HTML. Some of the tags such as ol and h2 are missing from the output, although they present in the template and the data itself is in the output. I use Saxon 9 to apply the transformation.
XML:
<?xml version="1.0"?>
<recipes>
<recipe>
<name>Gush'gosh</name>
<ingredients>
<ingredient>
<qty>1</qty>
<unit>pound</unit>
<food>hamburger</food>
</ingredient>
<ingredient>
<qty>1</qty>
<unit>pound</unit>
<food>elbow macaroni</food>
</ingredient>
<ingredient>
<qty>2</qty>
<unit>cups</unit>
<food>brown sugar</food>
</ingredient>
<ingredient>
<qty>1</qty>
<unit>bag</unit>
<food>chopped onions</food>
</ingredient>
<ingredient>
<qty>1</qty>
<unit>teaspoon</unit>
<food>dried dill</food>
</ingredient>
</ingredients>
<instructions>
<instruction>Brown the hamburger.</instruction>
<instruction>Add onions and cook until transparent.</instruction>
<instruction>Add brown sugar and dill.</instruction>
<instruction>Cook and drain pasta.</instruction>
<instruction>Combine meat and pasta.</instruction>
</instructions>
</recipe>
<recipe>
<name>A balanced breakfast</name>
<ingredients>
<ingredient>
<qty>1</qty>
<unit>cup</unit>
<food>cereal</food>
</ingredient>
<ingredient>
<qty>1</qty>
<unit>glass</unit>
<food>orange juice</food>
</ingredient>
<ingredient>
<qty>1</qty>
<unit>cup</unit>
<food>milk</food>
</ingredient>
<ingredient>
<qty>2</qty>
<unit>slices</unit>
<food>toast</food>
</ingredient>
</ingredients>
<instructions>
<instruction>Combine cereal and milk in bowl.</instruction>
<instruction>Add all ingredients to table.</instruction>
</instructions>
</recipe>
</recipes>
XSL:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/xhtml1/strict">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>Recipes</title>
</head>
<body>
<xsl:apply-templates select="/recipes/recipe"/>
</body>
</html>
</xsl:template>
<xsl:template name="recipe">
<h2>
<xsl:value-of select="./name"/>
</h2>
<h3>Ingredients:</h3>
<p>
<!--<xsl:apply-templates select="./ingredients"/>-->
<xsl:for-each select="./ingredients/ingredient">
<xsl:value-of select="./qty"/><xsl:text> </xsl:text>
<xsl:value-of select="./unit"/><xsl:text> </xsl:text>
<xsl:value-of select="./food"/> <br/>
</xsl:for-each>
</p>
<h3>Directions:</h3>
<ol>
<!--<xsl:apply-templates select="./instructions"/>-->
<xsl:for-each select="./instructions/instruction">
<li> <xsl:value-of select="."/> </li>
</xsl:for-each>
</ol>
</xsl:template>