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>