Latest web development tutorials
 

XSLT current() Function


< Complete XSLT Function Reference

Definition 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.


< Complete XSLT Function Reference