6.6. Advanced Techniques
At this point, you are ready to become an XSLT power user. This section introduces some spiffy techniques such as naming and passing parameters to template rules, using modes to change the behavior of rules, and handling whitespace.
6.6.1. Named Templates
All the template rules we've seen so far are specified by their match patterns. Sometimes, however, we want to call a template rule explicitly; XSLT provides the named template for this purpose. A named template is an advantage for repetitive tasks, as it simplifies the code and makes it more readable. Software developers may think of named templates as subroutines, which perform a similar role in programming languages.
A named template is the same as any other rule, except instead of a match attribute, it has a name attribute, which gives it a label. You use an element called <xsl:call-template> to jump to that rule. Unlike a regular template rule, the context node and node set do not change upon invocation of a named template.
Here's an example of a named template that generates a bank of navigation links for an HTML page:
<xsl:template name="navbar">
<div class="navbar">
<xsl:text>Current document: </xsl:text>
<xsl:value-of select="title"/>
<br/>
<a href="index.htm">Home</a> |
<a href="help.htm">Help</a> |
<a href="toc.htm">Contents</a>
</div>
</xsl:template>
Before the links, we've placed two lines to print the current document's title. This demonstrates that the current node is the same as it ...
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