Modèles (XSLT)
Un modèle est un type d'expression qui retourne une collection de nœuds en fonction d'un ensemble de conditions pour chaque nœud. Les nœuds qui satisfont aux conditions correspondent au modèle. La syntaxe des modèles est un sous-ensemble de la syntaxe des expressions. En particulier, les chemins de localisation répondant à certaines restrictions peuvent être utilisés comme modèles. Une expression qui est également un modèle est toujours évaluée en un objet de type node-set. Un nœud correspond à un modèle si ce nœud est un membre du résultat de l'évaluation du modèle en tant qu'expression par rapport à un contexte possible. Les contextes possibles sont ceux dont le nœud de contexte est le nœud dont la correspondance est recherchée ou l'un de ces ancêtres.
Le tableau suivant donne quelques exemples de modèles.
Modèle |
Correspondance |
---|---|
Para |
tout élément para |
* |
any, élément |
chapter|appendix |
tout élément chapter et tout élément appendix |
olist/item |
tout élément item dans un parent olist |
appendix//para |
tout élément para avec un élément ancêtre appendix |
/ |
le nœud racine |
text() |
tout nœud de texte |
processing-instruction() |
toute instruction de traitement |
node() |
tout nœud autre qu'un nœud d'attribut et le nœud racine |
id("W11") |
l'élément ayant un ID unique W11 |
para[1] |
tout élément para qui est le premier élément para enfant de son élément parent |
*[position()=1 and self::para] |
tout élément para qui est le premier élément enfant de son élément parent |
para[last()=1] |
tout élément para qui est le seul élément para enfant de son élément parent |
items/item[position()>1] |
tout élément item ayant un parent items et qui n'est pas le premier élément item enfant de son élément parent |
item[position() mod 2 = 1] |
tout élément item qui est un élément item enfant impair de son élément parent |
div[@class="appendix"]//p |
tout élément p ayant un élément ancêtre div qui possède un attribut class dont la valeur est appendix |
@class |
tout attribut class (pas tout élément ayant un attribut class) |
@* |
tout attribut |