Manipulation des structures de donnes XML - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Manipulation des structures de donnes XML

Description:

Expression de chemins pour naviguer dans le document, d signer un ou plusieurs n uds ( l ments, attributs, ... Une expression peut produire/retourner/adresser les types d'objets: ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 19
Provided by: SEC1184
Category:

less

Transcript and Presenter's Notes

Title: Manipulation des structures de donnes XML


1
Manipulation des structures de données XML
  • Le langage XPath

2
Utilisation de XPATH
  • Pour pouvoir transformer un document XML, il faut
    pouvoir extraire des fragments XML (nuds) d'un
    document. XPATH permet de définir ces fragments.
  • Fondé sur une représentation arborescente (partie
    du DOM).
  • Expression de chemins pour naviguer dans le
    document, désigner un ou plusieurs nuds
    (éléments, attributs, commentaires)
  • Librairie de fonctions standard
  • Utilisé conjointement avec XSLT pour sélectionner
    et explorer les nuds au cours des opérations de
    transformation.
  • avec XQUERY pour l'interrogation de documents XML
  • avec XML Schéma pour créer des clés et des
    références
  • avec XLINK pour créer des liens entre
    documents/fragments XML

3
Les arbres XPATH
  • Tout document XML bien formé correspond à un et
    un seul arbre (DOM)
  • Un seul arbre XPATH est une version simplifiée
    d'arbre DOM (pas d'entité, pas de section
    littérale), les nuds ont l'un des 7 types
  • racine (Document)
  • élément (Element)
  • texte (Text)
  • attributs (Attribute)
  • commentaire (Comment)
  • instructions (Processing instruction)
  • espace de noms (NameSpace)

4
Les expressions XPATH
  • La forme syntaxique de base du langage XPATH est
    l'expression.
  • Une expression permet d'associer une valeur de
    type chaîne de caractères à chaque type de noeud
  • à un nud élément son nom
  • à un nud attribut sa valeur
  • à un nud texte sa valeur
  • Une expression peut produire/retourner/adresser
    les types d'objets
  • chemin ou ensemble de nuds
  • booléen
  • nombre
  • chaîne de caractères

5
Les expressions XPATH
  • Une expression XPATH
  • s'évalue en fonction d'un nud contexte
  • désigne un ou plusieurs chemins dans l'arbre à
    partir du nud contexte
  • a pour résultat
  • un ensemble de nuds
  • ou une valeur numérique, booléenne ou
    alphanumérique.
  • Le contexte est spécifié par
  • un nud (nud contextuel)
  • une paire d'entiers positifs non nuls (la
    position contextuelle et la dimension
    contextuelle)
  • un ensemble de variables (et leurs valeurs)
  • une bibliothèque de fonctions
  • un ensemble de déclarations d'espaces de noms

6
Les expressions XPATH
  • Les expressions XPATH sont de 3 types
  • Expression primaire (tout ce qui retourne une
    valeur)
  • chaîne de caractères quotée
  • nombre
  • référence à une variable
  • appel de fonction
  • expression de chemin
  • expression arithmétique ( - x div mod)

7
Chemins de localisation
  • syntaxe très semblable à celle des systèmes de
    fichiers.
  • / nud racine
  • // nud descendant
  • . nud contextuel
  • .. nud parent
  • Remarque //N sélectionne tous les éléments N de
    l'arbre.

8
Etapes XPATH
  • Une étape a trois composants
  • axe filtre predicat1 predicat2
  • l'axe sens de parcours des nuds (par défaut,
    child)
  • le filtre type des nuds/noms des éléments qui
    seront retenus
  • les prédicats que doivent satisfaire les nuds
    retenus
  • Les axes XPATH sont
  • un sous-ensemble des nuds de l'arbre relatif au
    nud contexte
  • l'ordre de parcours de ces nuds à partir du nud
    contexte

9
Axes XPATH
  • descendant
  • ancestor
  • ancestor-or-self
  • following-sibling
  • preceding-sibling
  • following
  • preceding
  • namespace
  • child
  • self ou .
  • parent ou ..
  • descendant-or ou .//
  • attribute ou _at_
  • axe par défaut truc (par exemple childtruc)

10
Axes XPATH
  • Le joker remplace toute chaîne de caractères
  • _at_
  • xsl
  • L'opérateur de choix multiples
  • prenom nom
  • _at_id _at_idref
  • _at_ text()

11
Axes XPATH
  • Abréviations courantes
  • nud équivaut à childnud
  • sélectionne tous les enfants du nud contextuel
  • _at_nomAttribut sélectionne l'attribut nomAttribut
    du nud contextuel
  • _at_ tous les attributs du nud contextuel
  • fils1 équivaut à childfilsposition()1
  • /fils sélectionne tous les petits enfants fils
    du nud contextuel
  • ..//fils sélectionne tous les descendants fils du
    père du nud contextuel
  • filssuivant"valeur" sélectionne les enfants
    fils du nud contextuel qui ont au moins un
    enfant suivant dont le contenu textuel est égal à
    "valeur"
  • fils_at_type"truc" sélectionne les enfants fils
    dont l'attribut type a pour valeur truc.

12
Sélection d'un nud XPATH
  • De type élément par le nom
  • titre
  • //titre
  • following-siblingtitre
  • De type attribut par le nom de l'attribut
  • img/_at_href
  • De type commentaires, texte, et ProcInstr.
  • film//comment()
  • titre/text()

13
Prédicats XPATH
  • Un prédicat filtre un ensemble de nuds
    relativement à un axe de parcours de manière à
    restreindre cet ensemble
  • Prédicat simple
  • expression1 opérateur_arithmétique
    expression2
  • opérateurs arithmétiques ! lt lt gt
    gt
  • Prédicat général
  • prédicat1 opérateur_logique prédicat2
  • opérateurs logiques or and not
  • Evaluation de l'expression E dans E
  • E est de type booléen retourne la valeur de E
  • E de type numérique retourne vrai si
    val(E)position de l'élément courant
  • E de type ensemble de nuds retourne vrai si E
    est non vide
  • E de type chaîne retourne faux si val(E)""
    (vide), et vrai sinon

14
Fonctions XPATH
  • XPATH propose un ensemble de fonctions
    prédéfinies pour gérer
  • les expressions booléennes
  • les nombres
  • les chaînes de caractères
  • les positions relatives
  • l'information locale (environnement)
  • XPATH propose un ensemble de fonctions
    prédéfinies pour permettre des requêtes de base
  • analyse de contenus et noms de balises/attributs

15
Fonctions applicables aux noeuds
  • count(ensemble_de_noeuds)
  • compte le nombre de nuds référencés
  • position() et last()
  • position du nud contextuel et du dernier nud

16
Fonctions applicables aux chaînes
  • concat(ch1, ch2,)
  • contains(ch1, ch2), startswith(ch1, ch2)
  • substring(ch1, indice, longueur),
    substring-after(ch1,ch2), substring-before(ch1,ch2
    )
  • translate(ch1,ch2,ch3)
  • ex translate(chaine,"abcde","ABCDE").
  • normalize-space(ch) supprime espaces inutiles
  • stringlength(ch)

17
Fonctions applicables aux nombres
  • opérateurs , -, , div, mod
  • ceiling(nb)
  • floor(nb)
  • round(nb)
  • sum(nb1,nb2,)
  • ex sum(//prix) somme des contenus de tous les
    élts prix du document XML

18
Fonctions booléennes
  • true(), false()
  • not(variable)
  • lang()
  • boolean(object) dépend du type de l'argument
  • nombre différent de 0 et de NaN true, sinon
    false
  • chaîne non vide true sinon false
  • argt booléen valeur identique
  • ensemble de nuds true sauf si ensemble vide
    (false)
Write a Comment
User Comments (0)
About PowerShow.com