Élément <xsl:key> de XSLT

Définition et utilisation

<xsl:key> est un élément de niveau supérieur, qui peut déclarer une clé nommée (c'est-à-dire une paire de nom et de valeur attribuée aux éléments spécifiés dans le document XML).

Cette clé est utilisée par la fonction key() dans le schéma de style, et aide à accéder efficacement aux éléments attribués dans un document XML complexe.

Remarque :La clé n'a pas besoin d'être unique !

Syntaxe

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

Attribut

Attribut Valeur Description
name name Obligatoire. Définissez le nom de la clé.
match pattern Obligatoire. Définissez sur quel noeud cette clé est appliquée.
use expression

Obligatoire. Spécifiez l'expression à utiliser comme valeur de cette clé.

La valeur de la clé peut être l'une des valeurs suivantes : attribut, élément fils ou contenu de l'élément correspondant.

Exemple

Exemple 1

Supposons que vous possédiez un fichier XML nommé "persons.xml":

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

Vous pouvez définir une clé dans le fichier XSL, comme ceci :

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

Pour trouver la personne avec id="050676", utilisez ce code (dans le fichier 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 />
    Nom : <xsl:value-of select="@name"/>
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>