Función position
Devuelve la posición, o número de índice, del nodo con respecto a todos los nodos seleccionados de la lista de nodos.
number position()
Notas
La posición del nodo es de base 1, por lo que el primer nodo devuelve una posición de 1.
Ejemplo
En el código de ejemplo siguiente se muestran los efectos de la función position()
.
Archivo XML (position.xml)
Archivo XSLT (position.xsl)
Resultados
La hoja de estilos XSLT anterior, cuando se aplica al archivo XML de origen, asigna todos los elementos <x>
a nuevos elementos <x>
cuyo contenido mantiene su posición en el orden del documento.
<x a="a11">1</x>
<x a="a21">2</x>
<x a="a31">3</x>
<x a="a12">4</x>
<x a="a22">5</x>
<x a="a13">6</x>
<x a="a14">7</x>
Para ilustrar la dependencia de la función position()
con respecto al contexto desde el que opera, vamos a sustituir la siguiente regla de plantilla (del archivo XSLT anterior):
por esta otra:
El resultado es el siguiente:
<x a="a11">1</x>
<x a="a21">2</x>
<x a="a31">3</x>
<x a="a22">4</x>
Por otro lado, si sustituimos la regla de plantilla por la siguiente:
<xsl:template match="/">
<xsl:apply-templates select="//x[2]"/>
</xsl:template>
obtenemos el siguiente resultado:
<x a="a12">1</x>