The XSLT <xsl:apply-template> element is used to tell XSLT processor to find the appropriate template to apply according to the type and context of each selected node.
<xsl:apply-template select = Expression mode = QName> </xsl:apply-template>
| Index | Name | Description |
|---|---|---|
| 1) | select | It is used to process nodes selected by XPath expressions from the list of all nodes and its children. |
| 2) | mode | It is used to allow an element as specified by its qualified names to be processed multiple times, each time producing a different result. |
Let's take an example to create a list of <employee> element with its attribute "id" and its child <firstname>, <lastname>, <nickname>, and <salary> by iterating over each employee.
Employee.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?>
<class>
<employee id = "001">
<firstname>Aryan</firstname>
<lastname>Gupta</lastname>
<nickname>Raju</nickname>
<salary>30000</salary>
</employee>
<employee id = "024">
<firstname>Sara</firstname>
<lastname>Khan</lastname>
<nickname>Zoya</nickname>
<salary>25000</salary>
</employee>
<employee id = "056">
<firstname>Peter</firstname>
<lastname>Symon</lastname>
<nickname>John</nickname>
<salary>10000</salary>
</employee>
</class>Employee.xsl
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match = "/">
<html>
<body>
<h2>Employees</h2>
<xsl:apply-templates select = "class/employee" />
</body>
</html>
</xsl:template>
<xsl:template match = "class/employee">
<xsl:apply-templates select = "@id" />
<xsl:apply-templates select = "firstname" />
<xsl:apply-templates select = "lastname" />
<xsl:apply-templates select = "nickname" />
<xsl:apply-templates select = "salary" />
<br />
</xsl:template>
<xsl:template match = "@id">
<span style = "font-size = 25px;">
<xsl:value-of select = "." />
</span>
</xsl:template>
<xsl:template match = "firstname">
First Name:<span style = "color:brown;">
<xsl:value-of select = "." />
</span>
<br />
</xsl:template>
<xsl:template match = "lastname">
Last Name:<span style = "color:green;">
<xsl:value-of select = "." />
</span>
<br />
<</xsl:template>
<xsl:template match = "nickname">
Nick Name:<span style = "color:blue;">
<xsl:value-of select = "." />
</span>
<br />
</xsl:template>
<xsl:template match = "salary">
Marks:<span style = "color:red;">
<xsl:value-of select = "." />
</span>
<br />
</xsl:template>
</xsl:stylesheet>Output:
