XSLT <xsl:key>Élément
Référence complète des éléments XSLT
Définition et utilisation
L'élément <xsl:key> est un élément de niveau supérieur qui peut déclarer une clé nommée (c'est-à-dire attribuer des noms et des paires de valeurs à des éléments spécifiés dans un document XML). Cette clé est utilisée dans les feuilles de style via la fonction key(), vous aidant à accéder efficacement aux éléments attribués dans des documents XML complexes.
Remarque :Les clés ne doivent pas nécessairement être uniques !
Syntaxe
<xsl:key
name="name"
match="pattern"
use="expression"/>
name="name"
match="pattern"
use="expression"/>
Attributes
| Attribut | Valeur | Description |
|---|---|---|
| name | name | Obligatoire. Spécifie le nom de la clé. |
| correspondance | pattern | Obligatoire. Définit à quel nœud la clé est appliquée. |
| use | expression | Obligatoire. Spécifie l'expression à utiliser comme valeur de clé pour chaque nœud. |
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>
<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 suit :
<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>
<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>
Référence complète des éléments XSLT Autres extensions