Parameters
The XSLT <xsl:param> and <xsl:with-param> elements allow you to pass parameters to a template. You can pass templates with either the <call-template> element or the <apply-templates> element; we’ll discuss the details in this section.
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 ...
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