Élément <xsl:key> de XSLT

Définition et utilisation

<xsl:key> est un élément de niveau supérieur, il peut déclarer une clé nommée (c'est-à-dire assigner des paires de noms et de valeurs aux éléments spécifiés dans le document XML).

Cette clé est utilisée par la fonction key() dans le tableau de styles pour vous aider à 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 sous-jacent ou contenu de l'élément correspondant.

Exemple

Exemple 1

Supposons que vous ayez 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 le person avec l'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>