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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access