Element xsl:apply-templates represents together with xsl:template the heart of XSLT processing. With its help it is possible to create a chain of processing events which enables a very complex processing.
The first template to be evaluated is the template with match value "/" which matches the root node. Inside this template is a single instruction, xsl:apply-templates, with select attribute equal "aaa". It means that in the following step the stylesheet should look at the child of root node to find out that whether this child element is named "aaa".
The element name is really "aaa" and so xsl:apply-templates element can fulfill its role. The element applies suitable template from the stylesheet to the node selected from the XML source.
The stylesheet contains a template with match attribute equal to "aaa" and so this template will be used in the next step. The first instruction in this template is xsl:value-of and the resulting text is send to the output. The next instruction is again xsl:apply-template, this time with select attribute equal "bbb".
The stylesheet contains a template with match equal to "bbb" and so this template will be used this time. It contains a single instruction, which sends contents of the tb XML source element to the output. There is no other instruction and so processing ends here.
|
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:apply-templates select="aaa"/> </xsl:template> <xsl:template match="aaa"> <xsl:value-of select="ta"/> <xsl:apply-templates select="bbb"/> </xsl:template> <xsl:template match="bbb"> <xsl:value-of select="tb"/> </xsl:template> </xsl:stylesheet> |
|
|
XML
<aaa> <ta>Hello, </ta> <bbb> <tb>World!</tb> </bbb> </aaa> |
Output
Hello, World!
|
| Previous chapter: | - - - |
| Next chapter: | Sequences |
| Previous page: | Element xsl:value-of |
| Next page: | Current position |