| <xsl:key> | |
| Définit un index dans le document actif. L'élément est défini avec trois attributs : un attribut name indiquant un nom pour cet index ; un attribut match représentant une expression XPath qui décrit les nœuds à indexer et un attribut use représentant une expression XPath qui définit la propriété utilisée pour créer l'index. | |
| Catégorie | |
|
Elément de niveau supérieur |
|
| Attributs obligatoires | |
|
|
| Attributs facultatifs | |
|
Aucun. |
|
| Contenu | |
|
Aucun. <xsl:key> est un élément vide. |
|
| Apparaît dans | |
|
L'élément <xsl:key> est un élément de niveau supérieur qui ne peut apparaître que sous forme d'enfant de l'élément <xsl:stylesheet>. |
|
| Défini dans | |
|
XSLT section 12.2, Clés. |
|
| Exemple | |
|
La feuille de style suivante définit deux relations <xsl:key> dans un document XML :
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="language-index" match="defn" use="@language"/>
<xsl:key name="term-ids" match="term" use="@id"/>
<xsl:param name="targetLanguage"/>
<xsl:template match="/">
<xsl:apply-templates select="glossary"/>
</xsl:template>
<xsl:template match="glossary">
<html>
<head>
<title>
<xsl:text>Glossary Listing: </xsl:text>
<xsl:value-of select="key('language-index',
$targetLanguage)[1]/preceding-sibling::term"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="key('language-index',
$targetLanguage)[last()]/preceding-sibling::term"/>
</title>
</head>
<body>
<h1>
<xsl:text>Glossary Listing: </xsl:text>
<xsl:value-of select="key('language-index',
$targetLanguage)[1]/ancestor::glentry/term"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="key('language-index',
$targetLanguage)[last()]/ancestor::glentry/term"/>
</h1>
<xsl:for-each select="key('language-index', $targetLanguage)">
<xsl:apply-templates select="ancestor::glentry"/>
</xsl:for-each>
</body>
</html>
</xsl:template>
...
</xsl:stylesheet>
Pour obtenir des informations complètes sur la manière dont cette feuille de style utilise les relations <xsl:key>, voir la Section 5.2.3 duchapitre 5. |
|