La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Xpath XML Path language par Yves Bekkers

Présentations similaires


Présentation au sujet: "Xpath XML Path language par Yves Bekkers"— Transcription de la présentation:

1 Xpath XML Path language par Yves Bekkers

2 Plan Pourquoi Xpath ? Syntaxe des expressions de chemin
Quelques exemples Opérandes et opérateurs Conclusion

3 Pourquoi XPath

4 Déplacements dans un document XML
Xpath : Un langage fonctionnel pour adresser les sous-arbres d'un arbre XML Norme utilisée dans de nombreux outils XML XSLT : langage de transformation d'arbre XML Xlink : outils de définition de liens XQuery : langage d'interrogation de documents

5 Transformation XSLT

6 Problème de repérage Au sein des feuilles de style XSLT
on doit désigner les branches de l’arbre d’entrée (document source) Repère 2 Repère 1 Solution : « expression de chemin »

7 Chemin absolu Codepostal de la carte de visite :

8 Chemin relatif A partir du numéro, la note : ../../note

9 Racine d’un document La racine d’un document est au dessus de l’élément racine du document, elle contient des commentaires éventuels des instructions de traitements éventuelles un et un seul élément (l’élément racine)

10 Type de nœud d’un arbre XPath
1. Nœud « élément » /carteDeVisite/note 2. Pseudo-nœud « attribut » /carteDeVisite/adresse/ville/attribute::codepostal 3. Nœud « texte » /carteDeVisite/note/clé/text() 1 2 3 1 2 3

11 Autres types de nœud Nœud commentaire Nœud instruction de traitement
<!-- ceci est un commentaire --> Nœud instruction de traitement <?xml-stylesheet type="text/xsl" href="C:\Abekkers\outils\xml2tree\xml2svg.xslt"?> Partie name() Partie text()

12 Syntaxe des expressions de chemin

13 Expression de chemin séquence d’étapes Chemin absolu Chemin relatif
/étape1/étape2/étape3/... Chemin relatif étape1/étape2/étape3/...

14 Étape Une étape est composée de trois parties
axe de déplacement (optionnel) test de nœud (obligatoire) prédicat (optionnel) 

15 Syntaxe d’une section Exemple La partie test de nœud est obligatoire
child::text()[position()=1] carteDeVisite[nom=’Bekkers’] comment() ancestor::nom attribut::codepostal La partie test de nœud est obligatoire La partie axe se termine par :: La partie prédicat est délimitée par […] axe test prédicat

16 Axes de déplacement + attribute

17 Partie test Un test c’est : Un nom d’élément, exemple : ville, prénom
* : n’importe quel élément text() comment() processing-instruction() processing-instruction(nom) node() identique à l’union de *, text(), comment() et de

18 Filtrage à l’aide du prédicat
Une expression Xpath s’évalue en un ensemble de nœuds /html/body/p 1 1 Filtrage par la position /html/body/p[position()=1] /html/body/p[position()=last()] Filtrage par le contenu /html/body/p[em]

19 Quelques raccourci

20 Quelques exemples

21 Quelques exemples //note/text() //note/text()[position()=1]
2 1 1 3 //note/text() //note/text()[position()=1] //nom[.=’Bekkers’] 1 2 3

22 Quelques exemples

23 Quelques exemples - suite

24 Opérandes et opérateurs

25 Constantes Chaînes Valeurs numériques 'Paris' "That's rubbish"
'He said "Boo"' Valeurs numériques 12, 3.05,

26 Prédicat - exemples [@codepostal=’35700’] [.=’Bekkers’]
[nom=’Bekkers’] [position()=last()-1] [not(position()=1)]

27 Opérateurs Expression numériques : Expression booléenne :
+, -, *, div, mod position(), last(), count(nds), string-length(expr) Expression booléenne : or, and, not(...), false(), true(), boolean(...), =, !=, <, <=, >= (à écrire < et >) Expression nœud id(chaîne)

28 Opérateurs (suite) Expressions chaîne string(exp)
concat(exp1, exp2, …) substring(expr,start), substring(expr,start,length) substring-before(expr,expr) substring-after(expr,expr)

29 Générateur d’identificateur
generate-id(expr) génère automatiquement un identificateur XML spécifique au premier nœud de l’ensemble de nœuds donné par l’expression generate-id() génère automatiquement un identificateur XML spécifique au nœud courant

30 Fonction generate-id()
Propriétés L’ordre alphabétique des identificateurs est le même qui l’ordre des nœuds dans le document Si generate-id(A) est un préfixe de generate-id(B), alors A est un ancêtre de B L’identificateur est unique au sein de tous les documents ouverts durant l’exécution.

31 Opérateur union Tous les éléments pere ou mere du document
//pere | //mere

32 Séquence de plusieurs prédicats
le dernier fils du nœud courant pourvu que ce soit un élément « ville » ou un élément « rue » [last()][ville or rue] le dernier des fils « ville » ou « rue » du nœud courant [ville or rue][last()]

33 SELECT DISTINCT de SQL tous les premiers éléments "ville" du document différents les uns des autres //ville[not(text()=preceding::ville/text())] équivalent de not in

34 Conclusion

35 Conclusions Xpath est puissant et indispensable
permet d’adresser n’importe quel nœud d’un document par sa position ou par contexte Mais Xpath n’est pas fait pour remplacer SQL et les bases de données efficacité ? Dans une feuille de style XSLT, Xpath est rarement employé dans toute sa généralité


Télécharger ppt "Xpath XML Path language par Yves Bekkers"

Présentations similaires


Annonces Google