Defining a Parameter in a Template
To define a parameter in a template, use the <xsl:param> element. Here’s an example
of a template that defines two parameters:
<xsl:template name="calcuateArea"> <xsl:param name="width"/> <xsl:param name="height"/> <xsl:value-of select="$width * $height"/> </xsl:template>
Conceptually, this is a lot like writing code in a traditional
programming language, isn’t it? Our template here defines two
parameters, width and height, and outputs their product.
If you want, you can define a default value for a parameter.
There are two ways to define a default value; the simplest is to use a
select attribute on the <xsl:param> element:
<template name="addTableCell"> <xsl:param name="bgColor" select="'blue'"/> <xsl:param name="width" select="150"/> <xsl:param name="content"/> <td width="{$width}" bgcolor="{$bgColor}"> <xsl:apply-templates select="$content"/> </td> </template>
In this example, the default values of the parameters bgColor and width are 'blue' and
150, respectively. If we invoke
this template without specifying values for these parameters, the
default values are used. Also notice that we generated the values of
the width and bgcolor attributes of the HTML <td> tag with attribute value
templates, the values in curly braces. For more information, see the
section Attribute Value Templates” in Chapter 3.
One thing to note about this example is that the content parameter doesn’t have a default
value here; we’re assuming that content contains the nodes ...
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