XPath et XSLT - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

XPath et XSLT

Description:

xsl:apply-templates mode='m2' Template nomm . L'utilisation de l'attribut name de l' l ment xsl:template permet de sp cifier un nom de mod le. ... – PowerPoint PPT presentation

Number of Views:158
Avg rating:3.0/5.0
Slides: 33
Provided by: Bla8153
Category:
Tags: xslt | ainsi | m2 | xpath

less

Transcript and Presenter's Notes

Title: XPath et XSLT


1
XPath et XSLT
  • Transformation de documents XML

2
XPath XML Path Language
  • Utilisé par XSLT et XPointer
  • Adressage dune partie dun document XML
  • Syntaxe non XML
  • Utilisable dans une URI
  • Possibilité de faire des tests (Pattern)
  • Supporte XML Namespaces
  • W3C Recommandation, November 1999

3
Expression XPath
  • Un XPath est composé dune expression
  • Lexpression est évaluée
  • Ensemble de Nuds
  • Element
  • Attribut
  • Boolean
  • Number
  • String
  • Une expression est évaluée dans un context

4
Location Paths
  • Exemples de Location Path
  • childpara
  • child
  • attributename
  • /descendantolist/childitem
  • Les Location Path ne sont quune partie de XPath
    mais la partie la plus utilisée

5
Location Path Syntaxe
  • Contexte
  • / racine (Chemin Absolu)
  • contexte courant (Chemin Relatif)
  • Etape
  • Axe (fils, parent, )
  • suivi de
  • Test (Livre, )
  • Prédicat pour affiner la sélection
  • Possibilité de chaîner les étapes.

6
Etape Axe
  • ancestor, ancestor-or-self
  • attribute
  • child
  • descendant, descendant-or-self
  • following, following-sibling
  • namespace
  • parent
  • preceding, preceding-sibling
  • self

7
Etape Test
  • Nom
  • Type
  • node()
  • text()
  • comment()
  • processing-instruction()
  • processing-instruction(name)

8
Etape Prédicat
  • Expression
  • Quelques expressions
  • position()3
  • position()last()-1
  • attributetypewarning
  • Prédicats peuvent être chaîné

9
Exemples Xpath (Location Path)
  • childparaposition()gt1
  • /descendantfigureposition()42
  • childparaattributetypewarningposition()
    5
  • /descendantpara
  • ancestordiv
  • selfpara
  • childchapterchildtitle

10
Abréviations
  • child peut être implicite
  • childdiv/childpara gt div/para
  • attribute peut être remplacé par _at_
  • /descendant-or-selfnode()/ peut être remplacé
    par //
  • self.node() peut être remplacé par .
  • parentnode() peut être remplacé par ..

11
Les Expressions XPath
  • Location Path seulement une partie de XPath
  • XPath des Expressions
  • Fonctions string
  • Fonctions boolean
  • Manipulation de Nud

12
XSLT XSL Transformation
  • Partie de XSL Extensible Stylesheet Language
  • Transformation de document XML
  • Syntaxe XML
  • Fonctionnement par pattern-matching
  • W3C Recommandation November 1999

13
Principe de Fonctionnement
XML
XML
PDF
html
14
Traitement XSLT
  • Effectué sur une liste de nuds
  • Initialement cette liste ne contient que le nud
    racine
  • Recherche des templates correspondant aux nuds
    de la liste.
  • Exécution des templates
  • Ecriture sur la sortie
  • Mise à jour de la liste

15
Une feuille de style XSLT
  • Un document XML
  • Prologue Spécifique
  • ltxslstylesheet version1.0 xmlnsxslhttp//
    www.w3.org/1999/Transformgt
  • Des éléments caractérisant la feuille de style
  • xslimport
  • xslinclude
  • xsloutput
  • Des Templates

16
Les Templates XSLT
  • Les templates XML définissent la transformation
  • Identification dune source
  • XPath
  • Traitement (Ex création délément XML)
  • Contenu du template
  • Ex
  • ltxsltemplate match/gt ltH1gt
    ltxslapply-templates/gt lt/H1gtlt/xsltemplategt

17
Les Templates XSLT
  • ltxsltemplate match pattern (XPath
    location) name qname (pour Appeler un
    template) priority number (règles
    dordre) mode qname (Pls traitements /
    Eltgt lt!-- Contenu --gt
  • lt/xsltemplategt

18
Exemples de Template
  • Une partie de document XML
  • This is an ltemphgt important lt/emphgt point
  • Un template dune feuille de style
  • ltxsltemplate matchemphgt ltfoinline-sequence
    font-weigthboldgt ltxslapply-templates/gt lt/fo
    rinline-sequencegtltxsltemplategt
  • Le résultat
  • This is an important point

19
Contenu dun template
  • Si un template contient du texte, ce texte sera
    écrit sur la sortie.
  • Ex
  • ltxsltemplate match/gt Feuille de style
    remplacant tout par ce texte ?!!!
  • lt/xsltemplategt

20
Contenu dun template
  • Si un template contient des éléments XML ainsi
    que des attributs XML ceux ci seront écrit sur la
    sortie.
  • Ex
  • ltxsltemplate match/gt ltHTMLgt ltHEADgt
  • lt/HEADgt
  • lt/xsltemplategt
  • Il est néanmoins conseillé dutiliser les
    fonctions de création délément XML

21
Fonctions de création
  • Création dun élément
  • ltxslelement name qnamegt
  • Création dun attribut
  • ltxslattribute name qnamegt valeur
  • Création de texte
  • ltxsltext gt texte
  • Création dinstructions de traitement
  • ltxslprocessing-instruction nameqnamegt
  • Création de commentaires
  • ltxsl-commentgt text

22
Fonction xslapply-templates
  • Fonction permettant dappliquer un template sur
    les fils du nud courant (met à jour la liste de
    nuds)
  • ltxslapply-templates select expr mode
    qnamegt contenu
  • lt/xslapply-templatesgt
  • Ex
  • ltxsltemplate matchgt
  • ltxslapply-templates/gtlt/xsltemplategt

23
Fonction xslvalue-of
  • La fonction xslvalue-of créer un nud text
    correspondant à la valeur du résultat de
    lexpression
  • ltxslvalue-of select string-expr gt
  • Exltxsltemplate matchpersongt ltpgt
    ltxslvalue-of select_at_given-name/gt
    lt/pgtlt/xsltemplategt

24
Répétition
  • Il est possible dappliquer un template à un
    ensemble déléments.
  • ltxslfor-each select node-exprgt Contenult/xsl
    for-eachgt
  • Exltxsltemplate match/gt ltxslfor-each
    selectelevegt

25
Traitement conditionnel
  • XSLT propose deux instructions conditionnel
  • ltxslif test boolean-expgt Contenult/xslifgt
  • ltxslchoosegt ltxslwhen testboolean-exprgt
    lt/xslwhengt ltxslwhen testboolean-exprgt
    lt/xslwhengt ltxslotherwisegt
    lt/xslotherwisegtlt/xslchoosegt

26
Et encore
  • Possibilité de trier les éléments de la liste.
    Utilisé après un xslapply-templates ou un
    xslfor-each
  • ltxslsort selectstring-expr gt
  • XSLT permet de créer des variables qui pourrons
    être utilisées dans la feuille de style. Une
    variable peut être un objet de nimporte quel
    type.
  • ltxslvaraible nameqname selectexpr gt
  • Autres fonctions XSLT
  • Opération sur les nombres
  • Opération sur les chaînes de caractères
  • Envoi de messages
  • Copy,

27
Modes
  • Les modes permettent à un élément dêtre traité
    plusieurs fois, en produisant un résultat
    différent à chaque fois.
  • ltxsltemplate matchfils modem1gt ltxsltemp
    late matchfils modem2gt
  • ltxslapply-templates modem2gt

28
Template nommé
  • Lutilisation de lattribut name de lélément
    xsltemplate permet de spécifier un nom de
    modèle.
  • Un template nommé peut ne pas avoir dattribut
    match
  • Un template nommé peut être appelé
    parltxslcall-template nameqnamegt

29
Import de template
  • XSLT founit deux mécanismes pour combiner des
    feuilles de style
  • ltxslinclude hrefuri-reference/gtCopier/Coller
    de la feuille de style
  • ltxslimport hrefuri-reference/gtLiens vers la
    feuille de style importé. En cas de conflit de
    template, les feuilles importées sont moins
    prioritaire.

30
Liens document XML et feuille de style XSLT
  • Le document XML peut inclure la feuille de style
    ou simplement la référencer.
  • lt?xml version"1.0" ?gt
  • lt?xmlstylesheet type"text/xsl"
    href"test.xsl"?gt

31
Moteurs XSLT
  • IE 5.0 (Microsoft)
  • Premier navigateur à proposer un moteur de
    transformation XSLT. Cependant, le moteur XSLT de
    IE5 nest pas entièrement conforme au standard
    (développé avant)
  • Xalang (Apache)
  • Moteur de transformation proposé par le groupe
    Apache. Entièrement compatible avec le standard.
    Unité autonome.

32
Conclusion
  • Langage de transformation de document XML
  • Syntaxe XML (relativement simple)
  • Fonctionnement Pattern/Matching
  • En principe utiliser pour construire un document
    XSL
  • Transformation Client ou Serveur
  • Recommandation W3C Novembre 1999
Write a Comment
User Comments (0)
About PowerShow.com