Elemento <xsl:key> de XSLT

Definición y uso

<xsl:key> es un elemento de nivel superior, que puede declarar un clave nombrada (es decir, un par de nombre y valor asignado a los elementos especificados en el documento XML).

Esta clave se utiliza a través de la función key() en la hoja de estilo, ayudándole a acceder de manera eficiente a los elementos asignados en documentos XML complejos.

Comentarios:¡La clave no tiene que ser única!

Sintaxis

<xsl:key
name="name"
match="pattern"
use="expression"/>

Atributo

Atributo Valor Descripción
name name Obligatorio. Regula el nombre de la clave.
match pattern Obligatorio. Define en qué nodo se aplica esta clave.
use expression

Obligatorio. Especifica la expresión que se utilizará como valor de esta clave.

El valor de la clave puede ser uno de los siguientes: atributo, subelemento o contenido del elemento coincidente.

Ejemplo

Ejemplo 1

Supongamos que tiene un archivo XML llamado "persons.xml":

<persons>
  <person name="Tarzan" id="050676"/>
  <person name="Donald" id="070754"/>
  <person name="Dolly" id="231256"/>
</persons>

Puede definir una clave en el archivo XSL, como así:

<xsl:key name="preg" match="person" use="@id"/>

Para encontrar al person con id="050676", utilice este código (en el archivo XSL):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:key name="preg" match="person" use="@id"/>
<xsl:template match="/">
  <html>
  <body>
  <xsl:for-each select="key('preg','050676')">
    <p>
    Id: <xsl:value-of select="@id"/><br />
    Nombre: <xsl:value-of select="@name"/>
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>