SELFHTML

Syntaxe XPath

Page d'information: vue d'ensemble

vers le bas Les missions de XPath
vers le bas Types de nœuds, axes et chemins
vers le bas Notation complète et abrégée
vers le bas Adressage de la racine du document
vers le bas Adressage avec mentions de chemin absolue
vers le bas Adressage avec mentions de chemin relatives
vers le bas Adressage d'attributs
vers le bas Adressage avec des jokers (caractères de remplacement)
vers le bas Adressage avec des mentions de position et des conditions
vers le bas Opérateurs XPath

 vers le bas 

Les missions de XPath

XPath est tout comme XML, XSL et XSLT un projet de langage du consortium W3. Pour XPath il y a un groupe de travail distinct au W3C qui travaille à la spécification du langage XPath. En Novembre 1999, a été publiée la version 1.0 de la recommandation (Recommendation) pour XPath. Vous pouvez suivre la spécification actuelle et l'évolution du langage XPath à l'adresse english page Page d'accueil du W3 à XPath.

XPath est en fin de compte une espèce de langage complémentaire, indispensable pour que XSLT puisse réaliser ses tâches. Xpath a ici trois tâches importantes:

Adressage de données

Lors de la transcription d'une structure de documents XML en une autre structure de documents XML, donc par exemple la transcription d'un document avec une DTD XML personnelle en un document HTML, il est important que chaque partie constituante de la structure de données puisse être adressée avec précision. Si par exemple vous avez dans l'arborescence de sortie (XML): <yeux couleur="gris bleu">, et que vous voulez en faire dans l'arbre de transformation (HTML): <th>couleur des yeux</th><td>gris bleu</td>, alors, il vous faut accéder à l'attribut couleur de l'élément yeux. Supposons plus loin que l'élément yeux est aussi bien un élément-enfant d'un élément nommé personne, qu'il est aussi un élément-enfant d'un élément nommé portraitrobot dans une autre branche du même document XML. Cela vous laisse entrevoir qu'une syntaxe d'adressage utilisable est nécessaire pour un adressage sans ambiguïté des parties constitutives du document. Les cas typiques dans lesquels l'adressage XPath est utilisé sont par exemple l'attribut select de l'instruction Autre page d'information xsl:value-of ou bien l'attribut match de l'instruction Autre page d'information xsl:template.

L'adressage de données avec XPath est décrit plus bas sur cette page.

Définition d'expressions logiques

On veut dire ici les expressions logiques qui sont traitées par le processeur XSLT et qui sont importantes pour la fonctionnalité de certains éléments XSLT. Les expressions logiques contiennent des opérateurs et peuvent ainsi par exemple comparer deux valeurs. Similaire à l'adressage de données, la définition d'expressions est placée dans certaines affectations de valeurs à des attributs d'éléments XSLT. Un exemple typique est l'attribut test de l'instruction Autre page d'information xsl:if. Y est formulée une condition qui peut être vraie ou fausse. Ce n'est que lorsqu'elle est vraie que les instructions subordonnées sont exécutées. Une condition telle que test="age &gt;= 18" (est-ce que l'élément age a une valeur supérieure ou égale à 18?) est une telle expression logique. Sa syntaxe est fondée sur XPath.

La définition d'expressions logiques avec XPath est décrite sur cette page dans la partie sur les vers le bas opérateurs XPath .

Fonctions supplémentaires

La panoplie de fonctions supplémentaires de XSLT qui réalisent certaines tâches ne sont pas le moindre du grand éventail de prestations assurées par XLST. Ainsi par exemple il y a une fonction position(), qui lors du traitement de plusieurs éléments renvoie dans l'ordre, le rang de l'élément en cours de traitement. Cette information peut être par exemple utilisée pour numéroter les éléments dans l'arbre de transformation. Une autre fonction typique nommée starts-with() vérifie si une chaîne de caractères commence avec une certaine sous-chaîne de caractères. Quand cette fonction est notée par exemple comme condition dans une instruction xsl:if, La création de l'arbre de transformation peut être influencée par la requête pour savoir si la valeur d'un élément commence par un certain signe ou une certaine chaîne de caractères. Ainsi, une condition telle que test="starts-with(codepostal,'13')" pourrait par exemple demander si la valeur d'un code postal commence par 13, et n'accepter dans l'arbre de transformation que les éléments qui remplissent cette condition.

Les fonctions supplémentaires sont décrites à la pages sur les Autre page d'information fonctions XPath .

 vers le hautvers le bas 

XPath1.0 Types de nœuds, axes et chemins

Les documents conformes à XML sont construits comme la structure de fichiers et de répertoires sur un support de données. Il y a là un répertoire racine qui peut contenir des répertoires (classeurs) et des fichiers. Chaque répertoire subordonné peut à son tour contenir d'autres sous-répertoires et fichiers etc... On parle aussi ici d'arborescence. À la page sur l'Autre page d'information Arborescence et nœuds d'un fichier XML il y a un début d'explication de ce modèle.

De la même façon que l'on parle, pour la structure de fichiers sur un support de données, de répertoires ou classeurs, de fichiers et de mentions de chemin, on a besoin pour l'adressage des parties constitutives d'un document XML d'une terminologie appropriée. Dans ce but, il y a dans XPath différents types de nœuds, axes et chemins. Les termes que l'on trouve ici sont présentés ci après. Les termes semblent tout d'abord un peu académiques, mais ils sont importants pour la compréhension de XPath. Les termes originaux en anglais sont déterminants et sont (écrits en italique).

Types de nœud

Chaque partie constitutive d'une structure arborescente de fichier XML est désignée comme étant un nœud . Étant donné qu'il y a en XML pourtant tout à fait renommé, autant de parties constitutives à faire que d'éléments d'attributs etc..., on parle de types de nœuds correspondants. Les types de nœuds ne font pas partie à proprement parler de la syntaxe d'adressage de XPath, il est pourtant avisé de connaître les termes. XPath distingue 7 types de nœuds:

Type de nœud Signification
Nœud racine
(root node)
Ceci est la racine d'un document XML. Le nœud racine n'est pas lui-même un élément mais la racine d'origine abstraite de l'arborescence du document.
Nœud d'élément
(element node)
Chaque élément (même l'élément-document ) représente pour XPath un nœud d'élément. Un élément nommé a, comprenant un repère d'ouverture et un repère de fermeture <a>...</a>, est par exemple un nœud-élément element node. Les éléments subordonnés (appelés aussi éléments-enfants) sont de la même façon des nœuds d'éléments element nodes, ainsi par exemple un élément nommé b, comprenant un repère d'ouverture et de fermeture <b>...</b>, qui peut être placé à l'intérieur de <a>...</a>.
Nœud d'attribut
(attribute node)
Chaque attribut qui appartient à un élément est désigné comme nœud d'attribut. Un attribut b="quelconque", qui est placé dans le repère d'ouverture d'un élément a et qui est donc noté ensuite sous la forme <a b="quelconque">, est considéré comme nœud d'attribut attribute node de l'élément a. Le nœud d'attribut comprend donc le nœud d'attribut et la valeur affectée.
Nœud de texte
(text node)
Chaque contenu de texte qui ne contient aucun autre nœud est désigné comme nœud de texte. Dans une notation telle que <a b="quelconque"> et un petit texte</a> le contenu de l'élément est un nœud de texte text node.
Nœud d'espace de nommage
(namespace node)
Aussi bien les éléments que les attributs peuvent contenir des espaces de nommage, si les espaces de nommage correspondants sont importés dans un fichier XML. Un peu comme les nœuds d'attribut sont affectés à un nœud d'élément, les nœuds d'espace de nommage sont affectés sont affectés à un nœud d'élément ou à un nœud d'attribut. Pour une notation telle que <x:a y:b="quelconque">, x et y sont des mentions d'espace de nommage. x est un nœud d'espace de nommage namespace node, qui est affecté à l'élément a, et y est un nœud d'espace de nommage namespace node, qui est affecté à l'attribut b.
Nœuds d'instructions de traitement
(processing instruction node)
Les instructions de traitement, qui sont placées dans un document XML (elles commencent par <? et se terminent par ?>), figurent en dehors de l'arborescence proprement-dite du document. Elles ne représentent pas pour XPath un type de nœud distinct, où la cible de l'instruction de traitement formerait le nom du nœud et le reste son contenu. Dans une instruction de traitement telle que <?xml-stylesheet type="text/xsl" href="representation.xsl"?> la partie xml-stylesheet est le nom du nœud.
La déclaration XML <?xml version="1.0"?> qui doit être notée au début d'un fichier XML n'est pas toutefois une instruction de traitement à proprement parler, même si sa syntaxe est exactement la même.
Nœuds de commentaires
(comment node)
Les commentaires, donc les contenus inclus dans les chaînes de caractères <!-- et -->, sont désignés comme nœuds de commentaires. Le nœud de commentaires est ici le contenu du commentaire. Pour un commentaire tel que <!--quelconque--> la chaîne de caractères quelconque est le nœud de commentaires comment node.

Axes

Il résulte de l'arborescence d'un document XML pour les différents nœuds que ceux-ci ont diverses relations les uns avec les autres. Ainsi il y a des nœuds qui dépendent d'autres nœuds qui se trouvent sur un même niveau. À cet effet XPath dispose de différents termes qui viennent de la terminologie de la généalogie et qui sont désignés comme étant des axes (axes). Les termes anglais (représentés en italique dans le tableau ci-après) sont aussi utilisés pour l'vers le bas adressage complet. XPath distingue 13 Axes:

Axe Signification Visualisation
Enfant
(child)
nœud immédiatement subordonné. Dans une structure comme <a><b>...</b></a> l'élément b par rapport à l'élément a un enfant child. voir Démonstration - nouvelle fenêtre représentation graphique
Parent
(parent)
Le nœud immédiatement hiérarchiquement supérieur. Dans une structure telle que <a><b>...</b></a> L'élément a est par rapport à l'élément b un parent parent. voir Démonstration - nouvelle fenêtre représentation graphique
Descendant
(descendant)
Nœuds subordonnés, même ceux qui sont plus éloignés dans la descendance que les enfants. Dans une structure telle que <a><b><c>...</c></b></a> aussi bien l'élément b que l'élément c sont par rapport à l'éléments a un descendant descendant. voir Démonstration - nouvelle fenêtre représentation graphique
Ancêtre
(ancestor)
Nœuds hiérarchiquement supérieurs, même ceux qui sont plus éloignés dans l'ascendance que les parents. Dans une structure telle que <a><b><c>...</c></b></a>, aussi bien l'élément b que l'élément a est par rapport à l'élément c un ancêtre ancestor. voir Démonstration - nouvelle fenêtre représentation graphique
Nœuds suivants
(following)
Nœuds qui suivent le nœud actuel dans le reste du document XML indépendamment de la hiérarchie des nœuds. Dans une structure telle que <a><b><c>...</c></b><b><c>...</c></b></a> le deuxième élément b, le deuxième élément c et leur contenu ont par rapport au premier élément c le statut de suivants following. voir Démonstration - nouvelle fenêtre représentation graphique
Nœuds précédents
(preceding)
nœuds qui précèdent le nœud actuel dans le document XML, indépendamment de la hiérarchie des nœuds. Dans une structure telle que <a><b><c>...</c></b><b><c>...</c></b></a> l'élément a et le premier élément b ont par rapport au premier élément c le statut de précédents preceding. voir Démonstration - nouvelle fenêtre représentation graphique
Nœuds frères suivants
(following-sibling)
Nœuds qui suivent le nœud actuel dans le reste du document XML et cela sur le même niveau hiérarchique. Dans une structure telle que <a><b><c>...</c><c>...</c></b></a><c>...</c> le deuxième élément c a par rapport au premier élément c le statut de nœud frère suivant following-sibling, le troisième élément c par contre non. voir Démonstration - nouvelle fenêtre représentation graphique
Nœuds frères précédents
(preceding-sibling)
Nœuds qui figurent avant le nœud actuel dans le document, et cela sur le même niveau hiérarchique. Dans une structure telle que <c>...</c><a><b><c>...</c><c>...</c></b></a> le deuxième élément c a par rapport au troisième élément c le statut de nœud frère précédent preceding-sibling, le premier élément c par contre non. voir Démonstration - nouvelle fenêtre représentation graphique
Attribut
(attribute)
Nœud d'attribut d'un élément. Les attributs reçoivent ainsi bien qu'ils aient leur place dans la hiérarchie d'une structure de document XML une place à part et se sont pas insérés dans le schéma de la terminologie child, parent, descendant et ancestor. Dans une structure telle que <a b="quelconque">, b est par rapport à a un attribut attribute.  
Espace de nommage
(namespace)
Nœud d'espace de nommage de l'élément actuel. Dans une structure telle que <x:a>...</x:a> x est l'espace de nommage namespace par rapport à l'élément a .  
Le nœud actuel proprement-dit
(self)
Le nœud actuel. Quand, dans une structure telle que <a><b><c>...</c><c>...</c></b></a> l'élément b est juste en train d'être traité par le processeur XSLT, alors, cet élément a à ce moment précis, a le statut de nœud actuel self. voir Démonstration - nouvelle fenêtre représentation graphique
Descendants ou nœud actuel proprement-dit
(descending-or-self)
Le nœud actuel ou ses descendants. Quand, dans une structure telle que <a><b><c>...</c><c>...</c></b></a> l'élément b est juste en train d'être traité par le processeur XSLT, alors cet élément et l'élément descendant c ont à ce moment précis le statut de descendant ou nœud actuel descending-or-self. voir Démonstration - nouvelle fenêtre représentation graphique
Ancêtres ou nœud actuel proprement-dit
(ancestor-or-self)
Le nœud actuel ou ses ancêtres. Quand, dans une structure telle que <a><b><c>...</c><c>...</c></b></a> l'élément b est juste en train d'être traité par le processeur XSLT, alors cet élément et l'élément ascendant a ont à ce moment précis le statut d'ancêtre ou nœud actuel ancestor-or-self. voir Démonstration - nouvelle fenêtre représentation graphique

Chemins

Xpath tient à disposition deux moyens syntaxiques pour noter le chemin à un ou plusieurs nœuds:

Notation Description Signification
/ Simple barre oblique Signe de séparation du chemin pour des noms effectifs de nœuds. Dans une structure telle que <a><b><c>...</c><c>...</c></b></a> la mention de chemin de l'élément c peut être représentée sous la forme a/b/c.
:: Deux fois deux points Signe de séparation du chemin pour des mentions de nœuds avec des axes. Dans une structure telle que <a><b><c>...</c><c>...</c></b></a> la mention de chemin de l'élément c peut être représentée par exemple sous la forme a/b/child::c. Plus de détails à ce sujet dans le paragraphe suivant.

 
 vers le hautvers le bas 

XPath1.0 Notation complète et abrégée

Pour l'adressage des nœuds d'une structure de données XML, il y a des expressions comme /child::personne/child::yeux/attribute::couleur. De telles expressions sont désignées comme notation complète, parce qu'elles comportent les désignations d'axes complètes. L'expression /child::personne/child::yeux/attribute::couleur peut tout aussi bien s'écrire sous la forme /personne/yeux/@couleur . C'est la notation abrégée qui renonce à la désignation des axes child:: et permet quelques autres "économies". Dans les exemples plus bas, les deux variantes de notation seront montrées chaque fois en parallèle.

 vers le hautvers le bas 

XPath1.0 Adressage de la racine du document

Chaque document XML a une racine qui peut également être adressée.

Exemple:

<xsl:template match="/">
<html><head><title>Exemple</title></head>
<body>
 <xsl:apply-templates />
</body></html>
</xsl:template>

Explication:

Le nœud racine du document XML est adressé avec une simple barre oblique (/). Dans l'exemple un modèle est défini avec Autre page d'information xsl:template pour la racine du document XML. Dans l'attribut match la racine du document est adressée.

 vers le hautvers le bas 

XPath1.0 Adressage avec mentions de chemin absolues

Les nœuds d'un document XML peuvent être adressés à l'aide d'une mention de chemin absolue.

Exemple 1 (notation complète):

<xsl:template match="/child::adresse/child::prenom">
<b><xsl:value-of select="/child::adresse/child::prenom"></b>
</xsl:template>

Exemple 2 (notation abrégée):

<xsl:template match="/adresse/prenom">
<b><xsl:value-of select="/adresse/prenom"></b>
</xsl:template>

Explication:

Les mentions de chemin absolues commencent par une barre oblique (/), qui représente la racine du document. Les autres niveaux de la hiérarchie sont marqués par d'autres barres obliques. Les nœuds par lesquels passe le chemin sont, comme dans l'exemple 1, indiqués par leur axe et leur nom de nœud séparés par deux fois deux points (::). De la même façon est permise et malgré tout utilisée plus souvent, la notation abrégée sans désignation d'axes montrée dans l'exemple 2. Dans l'exemple un modèle est défini pour un élément nommé prenom grâce à l'instruction xsl:template; cet élément est un élément enfant de l'élément adresse qui est lui-même un élément enfant de la racine du document. La syntaxe est même employée dans l'attribut select de l'instruction Autre page d'information xsl:value-of.

 vers le hautvers le bas 

XPath1.0 Adressage avec mentions de chemin relatives

Les nœuds d'un document XML peuvent être adressés à l'aide d'une mention de chemin relative.

Structure XML supposée:

<ligue>
 <element_ligue>
  <joueur>...</joueur>
   <resultat>
    <points>...</points>
   </resultat>
 </element_ligue>
</ligue>

Exemple 1 (notation complète):

<xsl:template match="./child::element_ligue/child::resultat">
 <span class="normal"><xsl:value-of select="parent::joueur"></span>
 <span class="accent"><xsl:value-of select="./child::points"></span>
</xsl:template>

Exemple 2 (notation abrégée):

<xsl:template match="element_ligue/resultat">
 <span class="normal"><xsl:value-of select="../joueur"></span>
 <span class="accent"><xsl:value-of select="points"></span>
</xsl:template>

Explication:

L'exemple suppose une structure d'éléments imbriqués typiques. Il suppose qu'il y a une définition de modèle pour l'élément ligue dans laquelle les modèles subordonnés sont appelés avec l'instruction Autre page d'information xsl:apply-templates. De plus l'exemple suppose que pour l'élément element_ligue aucune définition de modèle n'existe, mais qu'il y en a une pour son élément enfant resultat. Pour adresser cet élément par rapport à l'élément grand-père ligue, une mention de chemin relative dans l'attribut match de l'instruction Autre page d'information xsl:template est nécessaire. Dans la notation complète, cette mention de chemin s'énonce ./child::element_ligue/child::resultat, dans la notation abrégée, plus facilement lisible element_ligue/resultat. La chaîne de caractères ./ (point et barre oblique) figure pour "nœud actuel". Cette chaîne de caractères peut aussi être omise. Autrement la mention de chemin relative consiste simplement dans la suite les noms de nœuds déterminant la hiérarchie. Pour la notation complète la désignation d'axe child:: est ici encore utilisée, tandis que pour la notation abrégée suffisent les simples noms de nœuds (Dans l'exemple les noms d'éléments element_ligue et resultat). Le signe de séparation des niveaux de la hiérarchie est la simple barre oblique (/).

À l'intérieur de la définition de modèle pour l'élément resultat est noté entre autre du code HTML pour un autre élément des données de sortie, à savoir pour l'élément joueur. Cet élément se trouve cependant sur le même niveau hiérarchique que l'élément actuel resultat (nœuds frères). Pour l'adresser par rapport à resultat, il doit être adressé par le biais de l'élément parent commun. Dans la notation complète la désignation d'axe parent:: est disponible, suivie du nom de l'autre nœud enfant. Dans la notation abrégée, la mention de deux points suivie d'une barre oblique suffit (../), pour décrire le chemin par l'élément parent.

Pour la sortie HTML de l'élément points est utilisé de la même façon un adressage relatif. Étant donné que l'élément points est par rapport à l'élément actuel resultat simplement un élément enfant, les mentions ./child::points (notation complète) ou bien points (notation abrégée) suffisent pour l'adressage.

 vers le hautvers le bas 

XPath1.0 Adressage d'attributs

Les attributs d'éléments sont traités en XPath comme des nœuds d'attributs et adressés comme tels.

Exemple 1 (notation complète):

<xsl:template match="./child::yeux/attribute::couleur">
  <tr><td><b><xsl:text>couleur des yeux:</xsl:text></b></td>
  <td><xsl:value-of select="." /></td></tr>
</xsl:template>

Exemple 2 (notation abrégée):

<xsl:template match="yeux/@couleur">
  <tr><td><b><xsl:text>couleur des yeux:</xsl:text></b></td>
  <td><xsl:value-of select="." /></td></tr>
</xsl:template>

Explication:

L'exemple suppose qu'il y a une notation XML <yeux couleur="...">. Un modèle distinct est défini pour l'attribut. Pour cela une rangée de tableau sur deux colonnes est créée dans l'arbre de transformation HTML dans lequel l'expression statique couleur des yeux: figure dans la colonne de gauche tandis que dans la colonne de droite est sortie la valeur de l'attribut couleur=. L'attribut match de la définition de modèle est adressé de telle façon que le modèle puisse être appelé par un élément parent de yeux - par exemple de personne-. Le chemin s'intitule alors dans la notation complète ./child::yeux/attribute::couleur et dans la notation abrégée plus courante yeux/@couleur. Pour la notation complète les désignations d'axes child:: (pour l'élément enfant child par rapport à personne) et attribute:: pour le choix de son attribut couleur sont utilisées. Dans la notation abrégée, la mention relative de l'élément enfant yeux et du nom de l'attribut précédé du signe "chez" (@)suffit.

 vers le hautvers le bas 

XPath1.0 Adressage avec des jokers (caractères de remplacement)

L'adressage avec des jokers (caractères de remplacement) permet de choisir plusieurs nœuds en une seule fois.

Structure XML supposée:

<codefichier>
 <signature>474946383961</signature>
 <screen-descriptor>10000200B30000</screen-descriptor>
 <color-map>000000BF000000BF00BFBF00</color-map>
 <extension-block>21F90401000000</extension-block>
 <!-- etc... -->
</codefichier>

Exemple 1 (notation complète):

<xsl:template match="codefichier">
 <xsl:value-of select="child::*" />
</xsl:template>

Exemple 2 (notation abrégée):

<xsl:template match="codefichier">
 <xsl:value-of select="*" />
</xsl:template>

Explication:

L'exemple suppose qu'à l'aide d'éléments XML la construction d'un fichier binaire est décrite (dans l'exemple: le format GIF). Dans la sortie, les contenus de tous les éléments enfants de codefichier doivent être écrits simplement sur une lancée. Dans la définition de modèle de codefichier ceci est obtenu dans l'attribut select de l'instruction Autre page d'information xsl:value-of par la mention du caractère de remplacement * (astérisque). Dans la notation complète la mention de l'axe child::est notée, elle peut être omise dans la notation abrégée.

Attention:

Le caractère de remplacement * (astérisque) ne choisit que sur le niveau immédiatement subordonné hiérarchiquement. Une forme accentuée est la suite de caractères // (deux barres obliques). Avec elle, le choix se porte sur tous les niveaux subordonnés dans la hiérarchie peu importe, le nombre d'embranchements à venir dans l'arborescence.

 vers le hautvers le bas 

XPath1.0 Adressage avec des mentions de position et des conditions

Par l'adressage absolu et relatif, il n'est pas encore possible d'adresser chaque élément de son choix. Admettons qu'un élément nommé liste ait 25 éléments-enfants nommés element_liste, alors un adressage tel que liste/element_liste n'accède qu'au premier de ces éléments. Ce genre de problèmes peut certes également être maîtrisé par des boucles Autre page d'information xsl:for-each, toutefois il arrive que l'on ne veuille adresser qu'un élément bien précis des éléments-enfants et non pas tous à la suite. Les exemples suivants montrent des adressages avec des mentions de position et des conditions pour adresser certains éléments distincts. Ici sont mises également en œuvre en partie des Autre page d'information fonctions XPath.

Les parties composant la syntaxe placées entre crochets ([]) font partie également de l'éventail des mentions pour l'adressage avec des mentions de position et des conditions. Ces parties constitutives sont désignées par le terme Prédicats. Nombre des exemples qui suivent utilisent ces prédicats.

Exemple Notation Explication
self::liste abrégée adresse l'élément actuel seulement cependant lorsqu'il est du type liste.
child::element_liste[position() = 3] complète adresse le 3ème élément-enfant du type element_liste à l'aide de la fonction XPath Autre page d'information position().
element_liste[3] abrégée adresse le 3ème élément-enfant du type element_liste.
child::element_liste[position = last()] complète adresse le dernier élément-enfant du type element_liste à l'aide de la fonction XPath Autre page d'information last().
element_liste[last()] abrégée adresse le dernier élément-enfant du type element_liste à l'aide de la fonction XPath Autre page d'information last().
element_liste[last()-1] abrégée adresse l'avant-dernier élément-enfant du type element_liste à l'aide de la fonction XPath Autre page d'information last().
/livre/chapitre[2]/partie[4]/paragraphe[17] abrégée adresse dans un livre de façon absolue le 17ème paragraphe de la 4ème partie du chapitre 2 (sous réserve que les noms correspondants d'éléments correspondent en XML).
child::yeux[attribute::couleur="bleu"] complète adresse l'élément-enfant yeux, toutefois seulement s'il a un attribut couleur= qui a la valeur bleu.
yeux[@couleur="bleu"] abrégée adresse l'élément-enfant yeux, toutefois seulement s'il a un attribut couleur= qui a la valeur bleu.
child::yeux[attribute::couleur and attribute::vision] complète adresse l'élément-enfant yeux, toutefois seulement s'il a aussi bien un attribut couleur= qu'il a un attribut vision= (peu importe leurs valeurs affectées).
yeux[@couleur and @vision] abrégée adresse l'élément-enfant yeux, toutefois seulement s'il a aussi bien un attribut couleur= qu'il a un attribut vision= (peu importe leurs valeurs affectées).
/child::*[self::index_contenu or self::index_motscles] complète adresse de façon absolue dans un livre tous les éléments-enfants sous la racine, seulement ceux cependant qui ont pour nom d'élément index_contenu oui bien index_motscles.
. abrégée adresse le nœud actuel.
.. abrégée adresse le nœud parent du nœud actuel.
chapitre//paragraphe abrégée adresse tous les éléments du type paragraphe, qui se trouvent par rapport à un nœud actuel, sous les éléments du type chapitre. La syntaxe // est également désignée comme recursive descent operator. //X désigne la même chose que /descendant-or-self::node()/X.
livre//chapitre[< 5] abrégée adresse les quatre premiers éléments-enfants du type chapitre à l'intérieur d'un élément du type livre.

 
 vers le hautvers le bas 

XPath1.0 Opérateurs XPath

XPath propose une série d'opérateurs qui permettent de comparer des valeurs, d'effectuer des opérations ou d'évaluer des expressions. Ces attributs peuvent être placés dans les attributs de certains Autre page d'information Éléments XSLT. Là ils aident à formuler des conditions, à calculer les positions d'élément et plus encore. XPath connaît les opérateurs suivants:

Opérateur Signification
+ Addition
- Soustraction
* Multiplication - seulement cependant quand aucun des signes suivants n'est placé devant l'opérateur ni aucune des chaînes de caractères suivantes: @ :: ( [ ) ,
= égal (comparaison de deux valeurs)
!= différent (comparaison de deux valeurs)
< ou &lt; plus petit que (comparaison de deux valeurs). Il est indispensable de masquer dans XSLT .
> ou &&gt; plus grand que (comparaison de deux valeurs). Il est recommandé de masquer dans XSLT.
<= ou &lt;= plus petit ou égal à (comparaison de deux valeurs). Il est indispensable de masquer dans XSLT.
>= ou &gt;= plus grand ou égal à (comparaison de deux valeurs). Il est recommandé de masquer dans XSLT.
and relation logique ET (les deux expressions)
or relation logique OU (une des deux expressions)
div division avec virgule flottante
mod reste de la division avec virgule flottante

 
 vers le haut
page suivante Autre page d'information Fonctions XPath
page précédente Autre page d'information Éléments XSLT
 

© 2001 Stefan Münz / © 2003 Traduction Adresse électronique Serge François, 13405@free.fr
Adresse électronique selfhtml@fr.selfhtml.org