Xpath XML Path language par Yves Bekkers - PowerPoint PPT Presentation

About This Presentation
Title:

Xpath XML Path language par Yves Bekkers

Description:

Un langage fonctionnel pour adresser les sous-arbres d'un arbre XML ... Au sein des feuilles de style XSLT. on doit d signer les branches de l'arbre d'entr e ... – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 36
Provided by: bekk
Category:
Tags: xml | adresser | bekkers | language | par | path | xpath | yves

less

Transcript and Presenter's Notes

Title: Xpath XML Path language par Yves Bekkers


1
XpathXML Path languagepar 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 larbre dentrée
    (document source)

Repère 2
Repère 1
  • Solution  expression de chemin 

7
Chemin absolu
  • Codepostal de la carte de visite
  • /cartedeVisite/adresse/ville/_at_codepostal

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

9
Racine dun document
  • La racine dun 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 dun arbre XPath
  • 1. Nœud  élément  /carteDeVisite/note
  • 2. Pseudo-nœud  attribut 
  • /carteDeVisite/adresse/ville/attributecodepostal
  • /carteDeVisite/adresse/ville/_at_codepostal
  • 3. Nœud  texte 
  • /carteDeVisite/note/clé/text()

11
Autres types de nœud
  • Nœud commentaire
  • lt!-- ceci est un commentaire --gt
  • Nœud instruction de traitement
  • lt?xml-stylesheet type"text/xsl"
  • href"C\Abekkers\outils\xml2tree\xml2svg.xslt
    "?gt

Partie name()
Partie text()
12
Syntaxe des expressions de chemin
13
Expression de chemin
  • séquence détapes
  • Chemin absolu
  • /é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 dune section
  • Exemple
  • childtext()position()1
  • carteDeVisitenomBekkers
  • comment()
  • ancestornom
  • attributcodepostal
  • 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 cest
  • Un nom délément, exemple ville, prénom
  • nimporte quel élément
  • text()
  • comment()
  • processing-instruction()
  • processing-instruction(nom)
  • node() identique à lunion de
  • , text(), comment() et de
  • processing-instruction()

18
Filtrage à laide du prédicat
Une expression Xpath sévalue en un ensemble de
nœuds /html/body/p
Filtrage par la position /html/body/pposition()1
/html/body/pposition()last() Filtrage par le
contenu /html/body/pem
19
Quelques raccourci
20
Quelques exemples
21
Quelques exemples
  • //note/text()
  • //note/text()position()1
  • //nom.Bekkers

22
Quelques exemples
23
Quelques exemples - suite
24
Opérandes et opérateurs
25
Constantes
  • Chaînes
  • 'Paris'
  • "That's rubbish"
  • 'He said "Boo"'
  • Valeurs numériques
  • 12, 3.05, - 5.25

26
Prédicat - exemples
  • _at_codepostal35700
  • .Bekkers
  • nomBekkers
  • position()last()-1
  • not(position()1)

27
Opérateurs
  • Expression numériques
  • , -, , div, mod
  • position(), last(), count(nds),
  • string-length(expr)
  • Expression booléenne
  • or, and, not(...), false(), true(),
  • boolean(...),
  • , !, lt, lt, gt (à écrire lt et gt)
  • 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 didentificateur
  • generate-id(expr)
  • génère automatiquement un identificateur XML
    spécifique au premier nœud de lensemble de nœuds
    donné par lexpression
  • generate-id()
  • génère automatiquement un identificateur XML
    spécifique au nœud courant

30
Fonction generate-id()
  • Propriétés
  • Lordre alphabétique des identificateurs est le
    même qui lordre 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
  • Lidentificateur est unique au sein de tous les
    documents ouverts durant lexé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 ruelast()

33
SELECT DISTINCT de SQL
  • tous les premiers éléments "ville" du document
    différents les uns des autres
  • //villenot(text()precedingville/text())
  • équivalent de not in

34
Conclusion
35
Conclusions
  • Xpath est puissant et indispensable
  • permet dadresser nimporte quel nœud dun
    document par sa position ou par contexte
  • Mais Xpath nest 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é
Write a Comment
User Comments (0)
About PowerShow.com