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 mediante la función key() en el estilo, ayudándole a acceder de manera efectiva 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. Define el nombre de la clave.
match pattern Obligatorio. Define a 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, elemento secundario 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 se muestra a continuación:

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

Para encontrar el "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>