The <xsl:apply-templates> element applies a template to the current element or to the current element's child nodes.
If we add a select attribute to the <xsl:apply-templates> element it will process only the child element that matches the value of the attribute. We can use the select attribute to specify in which order the child nodes are to be processed.
|select||expression||Optional. Specifies the nodes to be processed. An asterisk selects the entire node-set. If this attribute is omitted, all child nodes of the current node will be selected|
|mode||name||Optional. If there are multiple ways of processing defined for the same element, distinguishes among them|
Wrap a single h1 element around each title element in the document:
Wrap a single h1 element around all the title elements which are children of message:
Wrap a single h1 element around all the child nodes of message that have the mode attribute set to "big":