O'Reilly logo

XML Pocket Reference, Second Edition by Michel Casabianca, Robert Eckstein

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Templates and Patterns

An XSLT stylesheet transforms an XML document by applying templates for a given type of node. A template element looks like this:

<xsl:template match="pattern"> 
   ...
</xsl:template>

where pattern selects the type of node to be processed.

For example, say you want to write a template to transform a para node (for paragraph) into HTML. This template will be applied to all para elements. The tag at the beginning of the template will be:

<xsl:template match="para">

The body of the template often contains a mix of template instructions and text that should appear literally in the result, although neither are required. In the previous example, we want to wrap the contents of the para element in p and /p HTML tags. Thus, the template would look like this:

<xsl:template match="para">
   <p><xsl:apply-templates/></p>
</xsl:template>

The xsl:apply-templates/ element recursively applies all other templates from the stylesheet against the para element (the current node) while this template is processing. Every stylesheet has at least two templates that apply by default. The first default template processes text and attribute nodes and writes them literally in the document. The second default template is applied to elements and root nodes that have no associated namespace. In this case, no output is generated, but templates are applied recursively from the node in question.

Now that we have seen the principle of templates, we can look at a more complete example. Consider the following ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required