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 un punto diferente. Veamos la expresión XPath siguiente: "catalog/cd". La expresión selecciona el nodo hijo <catalog> del nodo actual, luego selecciona el nodo hijo <cd> del nodo <catalog>. Esto significa que en cada paso de cálculo, "." tiene un significado diferente.
La siguiente línea:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Se procesarán todos los elementos cd en los que el valor del atributo title sea igual al valor del atributo ref del nodo actual.
Diferente a esto:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Este procesador manejará todos los elementos cd que tengan el valor del atributo title igual al valor del atributo ref.
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>