XSLT current() Function
❮ XSLT Function ReferenceDefinition and Usage
The current() function returns a node-set that contains only the current node. Usually the current node and the context node are the same.
<xsl:value-of select="current()"/>
is equal to
<xsl:value-of select="."/>
However, there is one difference. Look at the following XPath expression: "catalog/cd". This expression selects the <catalog> child nodes of the current node, and then it selects the <cd> child nodes of the <catalog> nodes. This means that on each step of evaluation, the "." has a different meaning.
The following line:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
will process all cd elements that have a title attribute with value equal to the value of the current node's ref attribute.
This is different from
<xsl:apply-templates select="//cd[@title=./@ref]"/>
that will process all cd elements that have a title attribute and a ref attribute with the same value.
Syntax
node-set current()
Example 1
<?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>
<xsl:for-each select="catalog/cd/artist">
Current node: <xsl:value-of select="current()"/>
<br />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
View the XML file, View the XSL file, and View the result.
❮ XSLT Function Reference