Función current() de XSLT
Definición y uso
La función current() devuelve un conjunto de nodos que contiene solo el nodo actual. Por lo general, el nodo actual es el mismo que el nodo de contexto.
<xsl:value-of select="current()"/>
igual a
<xsl:value-of select="."/>
Sin embargo, hay una diferencia. Veamos la expresión XPath siguiente: "catalog/cd". La expresión selecciona el subnodo <catalog> del nodo actual, luego selecciona el subnodo <cd> del nodo <catalog>. Esto significa que en cada paso de la computación, el "." tiene un significado diferente.
Esta línea es:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Procesará todos los elementos cd que tengan el valor del atributo title igual al valor del atributo ref del nodo actual.
Diferente a esto:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Este procesará todos los elementos cd que tengan el atributo title y ref con el mismo valor.
Sintaxis
node-set current()
Ejemplo
<?xml version="1.0" encoding="ISO-8859-1"?> <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"> Nodo actual: <xsl:value-of select="}}current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>