XPath
De Linuxmemo.
(→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.