Templates and Patterns
An XSLT style sheet 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 style sheet against
the <para>
element (the current node) while
this template is processing. Every style sheet 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. ...
Get Webmaster in a Nutshell, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.