Name
<xsl:apply-templates> — Instructs the XSLT processor to apply the appropriate templates to a node-set.
Category
Instruction
Required Attributes
None.
Optional Attributes
- select
Contains an XPath expression that selects the nodes to which templates should be applied. Valid values include
*
to select the entire node-set. Without this attribute, all element children of the current node are selected.- mode
Defines a processing mode, a convenient syntax that lets you write specific templates for specific purposes. For example, I could write an
<xsl:template>
withmode="toc"
to process a node for the table of contents of a document, and other<xsl:template>
s withmode="print"
,mode="online"
,mode="index"
, etc. to process the same information for different purposes.
Content
The <xsl:apply-templates>
element can contain any number of <xsl:sort>
and <xsl:with-param>
elements. In most cases, <xsl:apply-templates>
is empty.
Appears in
<xsl:apply-templates>
appears inside a template.
Defined in
XSLT section 5.4, Applying Template Rules.
Example
In our case study (see Chapter 9), we needed to create several different outputs from the same data. We addressed this need with the mode
attribute of the <xsl:apply-templates>
element. Here’s the main template (match="/"
):
<xsl:template match="/"> <xsl:apply-templates select="tutorial" mode="build-main-index"/> <redirect:write select="concat($curDir, $fileSep, 'index.html')"> <xsl:apply-templates select="tutorial" mode="build-main-index"/> </redirect:write> ...
Get XSLT 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.