XPath

De Linuxmemo.

(Différences entre les versions)
(Opérateurs et caractères spéciaux)
Ligne 50 : Ligne 50 :
*Recherche de plusieurs attributs
*Recherche de plusieurs attributs
Tous les attributs d'un élément peuvent être retournés à l'aide du préfixe @*. Cela peut être utile pour des applications qui traitent les attributs comme des champs d'un enregistrement.
Tous les attributs d'un élément peuvent être retournés à l'aide du préfixe @*. Cela peut être utile pour des applications qui traitent les attributs comme des champs d'un enregistrement.
 +
 +
==Ensembles XPath==
 +
Les collections retournées par des requêtes XPath conservent l'ordre, la hiérarchie et l'identité des documents, dans la mesure où ceux-ci sont définis. En d'autres termes, une collection d'éléments est retournée dans l'ordre du document, sans répétition d'éléments. Puisque, par définition, les attributs ne sont pas ordonnés, aucun ordre implicite n'existe dans les attributs retournés pour un élément spécifique.
 +
 +
La collection de tous les éléments ayant un certain nom de balise est exprimée par le nom même de la balise. On peut qualifier cela en montrant que les éléments sont sélectionnés dans le contexte actuel à l'aide d'un point et d'une barre oblique (./), mais le contexte actuel est utilisé par défaut et ne doit donc pas être noté explicitement.
 +
 +
==Filtres et modèles de filtre==

Version du 8 avril 2013 à 12:04

XPath est un langage pour adresser des parties de documents XML, conçu pour être utilisé à la fois par XSLT et XPointer.

refs: http://xmlfr.org/w3c/TR/xpath/ http://msdn.microsoft.com/fr-fr/library/ms256115%28v=vs.80%29.aspx

Tuto: http://www.csharpfr.com/tutoriaux/XPATH-LANGUAGE_536.aspx

Sommaire

Contexte des expressions XPath

  • Contexte actuel

Une expression précédée d'un point et d'une barre oblique (./) utilise explicitement comme contexte le contexte actuel. Par exemple, l'expression suivante fait référence à tous les éléments <author> dans le contexte actuel :

./author
Notez que cette expression est équivalente à la suivante :
author
  • Racine du document

Une expression précédée d'une barre oblique (/) utilise comme contexte la racine de l'arborescence du document. Par exemple, l'expression suivante fait référence à l'élément <bookstore> à la racine de ce document :

/bookstore
  • Élément racine

Une expression qui utilise une barre oblique suivie d'un astérisque (/*) utilise comme contexte l'élément racine. Par exemple, l'expression suivante trouve l'élément racine du document :

/*
  • Descendant récursif

Une expression qui utilise une barre oblique double (//) indique une recherche qui inclut zéro, un ou plusieurs niveaux de hiérarchie. Lorsque cet opérateur apparaît au début du modèle, le contexte est relatif à la racine du document. Par exemple, l'expression suivante fait référence à tous les éléments <author> partout dans le document actuel :

//author

Le préfixe .// indique que le contexte commence au niveau de la hiérarchie indiqué par le contexte actuel.

  • Éléments spécifiques

Une expression qui commence par un nom d'élément fait référence à une requête de l'élément spécifique, à partir du nœud de contexte actuel. Par exemple, l'expression suivante fait référence à l'élément <background.jpg> à l'intérieur de l'élément <images> dans le nœud de contexte actuel :

images/background.jpg

L'expression suivante fait référence à l'ensemble d'éléments <book> à l'intérieur des éléments <bookstore> dans le nœud de contexte actuel :

bookstore/book

L'expression suivante fait référence à tous les éléments <first.name> dans le nœud de contexte actuel :

first.name

Opérateurs et caractères spéciaux

  • Les expressions XPath se construisent à l'aide des opérateurs et caractères spéciaux indiqués dans le tableau suivant.

/

Opérateur enfant ; sélectionne les enfants immédiats de la collection du côté gauche. Lorsque cet opérateur de chemin apparaît au début du modèle, il indique que les enfants doivent être sélectionnés dans le nœud racine.

//

Descendant récursif ; cherche l'élément spécifié à n'importe quelle profondeur. Lorsque cet opérateur de chemin apparaît au début du modèle, il indique un jambage descendant récursif à partir du nœud racine.

.

Indique le contexte actuel.

..

Le parent du nœud de contexte actuel.

*

Caractère générique ; sélectionne tous les éléments quel que soit leur nom.

@

Attribut ; préfixe d'un nom d'attribut.

@*

Caractère générique d'attribut ; sélectionne tous les attributs quel que soit leur nom.

:

Séparateur d'espace de noms ; sépare le préfixe d'espace de noms du nom de l'élément ou de l'attribut.

( )

Regroupe les opérations pour établir de manière explicite leur ordre de priorité.

[ ]

Applique un modèle de filtre.

[ ]

Opérateur d'indice ; utilisé pour l'indexation au sein d'une collection.

+

Effectue une addition.

-

Effectue une soustraction.

div

Effectue une division à virgule flottante selon IEEE 754.

*

Effectue une multiplication.

mod

Retourne le reste d'une division tronquée.

  • Le tableau suivant indique l'ordre des priorités (de la plus haute à la plus faible priorité).
Priorité Caractère But

1

( )

Regroupement

2

[ ]

Filtres

3

/ //

Opérations de chemin

  • Attributs

XPath désigne les noms d'attribut par le symbole @. Les attributs et éléments enfants sont traités de manière impartiale et les capacités sont équivalentes entre les deux types autant que possible.

  • Recherche de plusieurs attributs

Tous les attributs d'un élément peuvent être retournés à l'aide du préfixe @*. Cela peut être utile pour des applications qui traitent les attributs comme des champs d'un enregistrement.

Ensembles XPath

Les collections retournées par des requêtes XPath conservent l'ordre, la hiérarchie et l'identité des documents, dans la mesure où ceux-ci sont définis. En d'autres termes, une collection d'éléments est retournée dans l'ordre du document, sans répétition d'éléments. Puisque, par définition, les attributs ne sont pas ordonnés, aucun ordre implicite n'existe dans les attributs retournés pour un élément spécifique.

La collection de tous les éléments ayant un certain nom de balise est exprimée par le nom même de la balise. On peut qualifier cela en montrant que les éléments sont sélectionnés dans le contexte actuel à l'aide d'un point et d'une barre oblique (./), mais le contexte actuel est utilisé par défaut et ne doit donc pas être noté explicitement.

Filtres et modèles de filtre

Outils personnels