Le Langage XPath Pr. Sidi Mohammed Benslimane École Supérieure en Informatique
Le Langage XPath Pr. Sidi Mohammed Benslimane École Supérieure en Informatique 08 Mai 1945 – Sidi Bel Abbes – s.benslimane@esi-sba.dz XPath, c’est quoi? • Xpath est une spécification du W3C, dont la version 1.0 est recommandée en Novembre 1999. • XPath est un langage non XML utilisé pour extraire des informations à partir de documents XML. • Xpath permet de désigner (d’identifier) un ou plusieurs noeuds dans un arbre XML, à l’aide de certains critères appelés les expressions de chemin. • Sa syntaxe élémentaire ressemble à l'expression d'un chemin dans un SGF. • Xpath est la brique de base pour d'autres technologies XML : XSLT : langage de transformation ; XQuery : langage de requêtes; XLink : spécification des hyperliens ; WS-BPEL: langage de composition de services Web. Modèle de données XPath • Un document XML est représenté par une structure hiérarchique en arbre qui comprend 7 types de nœuds: 1. nœud racine "/" 2. nœuds d’élément, 3. nœuds de texte, 4. nœuds d’attribut, 5. nœuds d’espace de noms, 6. nœuds de commentaire, 7. nœuds d’instruction de traitement. Modèle de données XPath • Les enfants du noeud racine sont ses noeuds fils de type commentaire ou instruction de traitement. • Les enfants d’un noeud élément sont ses noeuds fils de type élément, texte, commentaire ou instruction de traitement. • Les descendants du noeud racine ou d’un noeud élément sont ses enfants ou les enfants de ses enfants. Chemin de localisation XPath • Un chemin ou une expression Xpath est une construction récursive constituée d’étapes séparées par "/". • Syntaxe d'un chemin : [/]étape1/étape2/…/étapeN • Une expression XPath peut être relative ou absolue (comme une URL): – Si elle commence par "/": absolue depuis la racine, Exemple: /Livre/editeur/nom – Sinon: relative au nœud "courant " Exemple: Livre/editeur/nom Étape de localisation XPath • Une étape est composée de trois parties. Elle a la forme: [axe::]filtre[predicat1] [predicat2]…[predicatN] • L’axe : détermine le sens du parcours des noeuds; • Le filtre: indique le type des noeuds qui seront retenus dans l‘évaluation de l'expression • Les prédicats: expriment les propriétés que doivent satisfaire les noeuds retenus. • Les parties axe et prédicats sont optionnelles. Les axes de recherche • Un axe sélectionne, dans l’arbre du document et à partir du nœud courent, l’ensemble des noeuds qui peuvent être atteints en suivant une certaine direction : 1. Les axes en avant 2. Les axes en arrière 3. Les axes à droite et à gauche 4. Les axes avant et après 5. Les axes pour les attributs Les axes de recherche: Les axes en avant Les axes qui permettent de descendre dans l’arbre : • Self: le noeud courant, • Child: Les fils du noeud courant, sauf les attributs (c’est l’axe par défaut). • Descendant: les descendants du noeud courant • Descendant-or-self: les descendants du noeud courant plus lui-même. Axe Self <Cours> <!--ceci un est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Child / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Descendant / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Descendant-or-self / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b Les axes de recherche: Les axes en arrière Les axes qui permettent de remonter dans l’arbre : • Parent: le noeud parent du noeud courant, • Ancestor: les ascendants du noeud courant • Ancestor-or-self: les ascendants du noeud courant plus lui-même. Axe Parent <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Ancestor / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Ancestor-or-self / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b Les axes de recherche: Les axes à droite et à gauche • Following-sibling: les noeuds frères placés après le noeud courant (partageant le même père). • Preceding-sibling: les noeuds frères placés avant le noeud courant (partageant le même père). Axe Following-sibling <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Preceding-sibling / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b Les axes de recherche: Les axes avant et après • Following: les nœuds placés après dans le document (excepté ses descendants ainsi que les noeuds attributs). • Preceding: les nœuds placés avant dans le document (excepté ses ancêtres ainsi que les noeuds attributs). Axe Following <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b <Cours> <!--ceci est exemple XPath--> <Titre>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe Preceding / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b Les axes de recherche: Les axes pour les attributs • Attribute: sélectionne les noeuds de type attribut, fils du nœud courant (si le noeud contexte n’est pas un élément, cet axe est vide) ; <Cours> <!--ceci est exemple XPath--> <Titre soutitre=’XPath’>Cours XML</Titre> <Auteur> <Nom>Benslimane</Nom> <Prénom>Sidi Med</Prénom> </Auteur> <Description> Ce cours aborde les <b>concepts</b> de base dans XPath. <!-- c'est le meilleur cours !!! --> </Description> </Cours> Axe attribute / E - - E T E E T E T E T E T T - - Titre Auteur Cours Comment() Text() Text() Text() Text() Text() Text() Comment() Nom Description Prénom b @ Soutitre Les filtres (test de nœuds) [axe::]filtre[predicat1] [predicat2]…[predicatN] • Un filtre ou test de noeud sélectionné parmi les noeuds de l’axe a l’une des formes suivante: • nom : sélectionne les noeuds de l’axe qui portent ce nom; • * : dans l'axe des attributs, tout attribut, dans les autres axes, tout element; • node() : sélectionne tout noeud de l’axe sauf la racine, • text() : sélectionne tout noeud de l’axe de type texte ; uploads/s3/ cours-iv-xpath-2019-2020.pdf
Documents similaires
-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 22, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.0569MB