Élément <xsl:key>

L'élément <xsl:key> déclare une clé nommée — à savoir, une paire nom-valeur assignée à un élément spécifié d'un document XML. Cette clé est utilisée avec la fonction key() dans des expressions XPath pour vous aider à accéder efficacement aux éléments assignés dans un document XML complexe.

<xsl:key
  name = QName
  match = Pattern
  use = Expression
</xsl:key>

Attributs

  • match
    Spécifie le Modèles identifiant un nœud qui contient cette clé.
  • use
    Spécifie une Expressions à utiliser comme valeur pour la clé. La valeur de la clé doit être : un attribut, un élément enfant ou le contenu de l'élément correspondant.

Informations sur l'élément

Nombre d'occurrences

Illimité

Éléments parents

xsl:stylesheet

Éléments enfants

(Pas d'éléments enfants)

Notes

Vous pouvez utiliser des clés comme identificateurs généralisés servant à faire référence à des éléments dans un document XML. Pour ce faire, utilisez d'abord <xsl:key> pour déclarer une clé correspondant à un nœud. Appelez ensuite la fonction key() pour récupérer ce nœud, en fournissant comme arguments le nom et la valeur de la clé. Pour plus d'informations, voir l'exemple ci-dessous.

Plusieurs clés peuvent être déclarées dans un même nœud. Cela permet d'accéder de plusieurs manières à ce nœud.

Lorsque vous travaillez avec des documents XML relativement volumineux, une clé est souvent une façon rapide de rechercher des éléments. En effet, elle indexe d'avance les emplacements des nœuds souhaités. Cependant, lorsque des éléments <xsl:key> sont compilés, le processeur XSLT ne crée pas de tels index tant qu'une fonction key() n'y fait pas référence. De cette façon, l'indexation, qui est une opération qui prend du temps, n'est effectuée que lorsque c'est nécessaire.

Dans une feuille de style, les éléments <xsl:key> sont des éléments de niveau supérieur et ne peuvent pas apparaître dans un modèle. Afin d'éviter les références circulaires, vous ne pouvez pas utiliser des références à des paramètres ou à des variables dans un <xsl:key>.

Exemple

La rubrique suivante fournit un exemple d'élément <xsl:key>.