30
1 XSLT : trier et mettre en valeur le contenu d’un document XML Cours d’ initiation : obtenir un document html Olivier Massone

1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

Embed Size (px)

Citation preview

Page 1: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

11

XSLT : trier et mettre en valeur

le contenu d’un document XML

Cours d’ initiation : obtenir un document html

Olivier Massone

Page 2: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

22

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

Page 3: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

33

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

Page 4: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

44

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

• est déclaratif au même titre que le html mais ne se soucie pas de la forme des données,

• est un langage qui permet de stocker des données de manière structurée,

• est régi par des règles strictes et notamment concernant l’ordonnancement des balises qui composent le code.

XMLXML

• donne lieu à des fichiers pouvant être visualisés via certains navigateurs Web sous la forme d’une arborescence,

Page 5: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

55

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

• est un langage qui permet de se déplacer dans une arborescence et de se placer sur les différents nœuds (balises, attributs,…) de celle-ci,

• comporte un certain nombre de facilités syntaxiques qui permettent de ne pas avoir à rappeler en permanence certains paramètres,

• est développé de manière à ce que l’adressage soit fait de manière absolue ou relative, et contient un certain nombre de « jokers » qui facilitent les requêtes,

XPathXPath

• permet l’utilisation de paramètres et de tests afin d’augmenter la précision des requêtes que son utilisation permet de faire.

Page 6: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

66

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

Page 7: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

77

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

4

2

7

1

3

9

5

8

6

objets > données

Page 8: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

88

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

42 7

13 9

58 6

objets > données

Page 9: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

99

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

42 7

13 9

58 6

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

Tri par forme

Page 10: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1010

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

42 7

13 9

58 6

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

Tri par couleur

Page 11: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1111

987

4

32

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

5 6

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

1

Tri par contenu

Page 12: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1212

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

ou ou…

Arborescences correspondant aux tris

Page 13: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1313

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

ou

Leçon : pour afficher un fichier XML contenant les mêmes données de 2 manières différentes, il faut créer 2 arbres différents !

En effet, les CSS permettent de modifier l’aspect mais pas la structure.

<racine> <bleu> <carré> 2 </carré> <rond> 7 </rond> <triangle> 4 </triangle> </bleu>

<jaune> … </jaune>

<violet> … <violet><racine>

<racine> < carré > < bleu > 2 </ bleu > < jaune > 3 </ jaune > < violet > 8 </ violet > </ carré >

< rond > … </ rond >

< triangle > … < triangle ><racine>

Arborescences correspondant aux tris : XML

Page 14: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1414

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTobjets > données

C’est pour répondre à cette problématique qu’a été créé le XSLT*.

Le XSLT permet de modifier l’affichage d’un fichier XML :

1- en faisant un tri des données qui le composent.

2- en personnalisant l’affichage (équivalent des feuilles de style).

* XSLT : eXtensible Style Language Transformation

Page 15: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1515

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

Page 16: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1616

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTfonctionnement principes de base

La coopération entre un fichier XML et un fichier XSLT se faitde la même manière qu’entre un fichier XML et une feuille de style externe CSS.

A aucun moment, le fichier XML n’est modifié dans sa structure.

Résultat à l’affichage

=>

Un fichier XSLT est un fichier XML. Il respecte donc les règles propres à ce langage.

=>

Page 17: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1717

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTfonctionnement principes de base

Un fichier XSLT est un fichier XML, dans lequel on fait appel à des instructions propres au langage XSLT, que l’on différencie par le moyen du namespace ‘’xsl:’’

=>

Ces instructions s’appliquent sur des éléments/attributs désignés à l’aide d’un chemin de localisation (ou motif XPath)

=>

Un ensemble d’instructions composent une règle=>

Les règles s’appellent entre elles et s’appliquent au document XML à transformer. En cas de conflit entre les règles, un système de priorité est établi. A titre d’exemple, la règle la plus spécifique est toujours prioritaire.

=>

Page 18: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1818

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTfonctionnement principes de base

Motif XPath : pays/région/département/ville

Code XML : organisation administrative de la France< pays> France <région> Ile De France <département code=‘’77’’> Seine et Marne

<ville habitants=‘’50000‘’ > Champs sur Marne </ville><ville habitants=‘’20000‘’ > Lagny sur Marne </ville>

</département> <département code=’’94’’>Val de Marne … </ département > </ région >< / pays >

Instruction : <xsl:for-each select=‘’pays/région/département/ville’’>

Page 19: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

1919

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

Page 20: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2020

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTstructure d’un document appel de règle(s)

Code XSLT :<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html"/>

<xsl:template match="/"><xsl:apply-templates/>

</xsl:template>

</xsl:stylesheet>

exemples

info : Une référence à un document XSLT vide devrait donner une page blanche. Cependant, plusieurs règles internes ont été définies par le W3C et s’appliquent si elles ne sont pas redéfinies.

ATTENTION ajouter une référence au fichier xslt dans le fichier xml :<?xml:stylesheet type="text/xsl" href=''Nom_fichier.xsl''?>

Page 21: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2121

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTstructure d’un document appel de règle(s)

Un langage déclaratif : l’ordre des règles importe peu

Sauf cas particulier, on ne nomme pas une règle pour l’appeler.Cela peut décontenancer mais c’est la (les) règle(s) qui va (vont) se lever d’elle(s) même, en fonction du nœud sur lequel on est situé au moment de l’appel et du type d’appel. On est en présence d’un modèle coopératif.Le codage en est compliqué mais on économise en code.On procède à une sorte de factorisation.

exemples

3 types d’appels de règles :1- appel de toutes les règles du document (cf. slide précédent) : <xsl:apply-templates/>

2- appel de la règle la plus adaptée au motif désigné :<xsl:apply-templates select=motif XPath>

3- appel d’une règle nommée (usage confidentiel) : <xsl:call-template name=NomDeLaRègle>

Page 22: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2222

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTstructure d’un document appel de règle(s)

XSLT : utilisation de <xsl:apply-templates select=motif>

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html"/>

<xsl:template match="/"><xsl:apply-templates/>

</xsl:template>

redéfinition d’une règle interne<xsl:template match="comment()"><br/><xsl:value-of select="."/><br/></xsl:template></xsl:stylesheet>

exemples

Page 23: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2323

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTstructure d’un document appel de règle(s)

XSLT : utilisation de <xsl:call-template select=motif>

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html"/>

<xsl:template match="/"><xsl:call-template name="test"/>

</xsl:template>

Appel d’une règle nommée<xsl:template match=‘’//comment()’’  name=‘’test ’’><br/>Le commentaire est :<xsl:value-of select=‘’.’’/><br/></xsl:template></xsl:stylesheet>

exemples

Page 24: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2424

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTstructure d’un document appel de règle(s)

Exemples supplémentaires >> résultats html

1 - créer une règle qui porte sur les marques de véhicules et qui affiche ces derniers en gras et saute une ligne.

Appeler cette règle à partir de la règle principale en lui spécifiant le chemin des 2 roues.

2 - ajouter une règle nommée que vous placerez après la règle sur les marques et qui affiche un message quelconque. Appelez-la à partir de la règle principale.

3 - créer une règle qui affiche les marques de véhicules italiens ainsi que leurs attributs sous forme de tableau ainsi que leur type (moto ou cyclos).

On peut constater que la règle se lève où qu’elle soit placée.

On s’aperçoit que les priorités entre les règles sont respectées.

exemples

Page 25: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2525

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTconclusion annexes

Nous avons vu :

1- l’origine et l’utilité de l’XSLT

2-le fonctionnement théorique de l’XSLT

3- les principes de base du langage

4- la structure que devait avoir les documents

présentation du TP

et pourtant…

Tout ceci n’est qu’une goutte d’eau dans la mer du XSLT :

1- il existe de nombreuses fonctions qui augmentent encore la puissance du langage,

2- il est possible de combiner la puissance du langage avec celle d’autres langages comme le VbScript, (cf. ex. de traduction),

3- on peut traiter une feuille XSLT par une autre feuille,

4- il est possible de générer un document XML à partir d’un autre…

Page 26: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2626

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTconclusion annexes

Documents et compléments de cours fournis :

1- recommandations du W3C pour le XSLT traduites en français (fichier pdf)

2- liste et syntaxe des instructions les plus courantes (slides suivants)

3- codes source des exemples vu lors de ce cours

4- solutions aux TP proposés

présentation du TP

Sites Internet conseillés :

1- Site sur les base en XSLT : http://www.chez.com/xml/xslt/

2- Traduction en français des recommandations du W3C pour le XSLT : http://xmlfr.org/w3c/TR/xslt/#named-templates

2- Site comportant de nombreux exemples de code en XSLT : http://www.laltruiste.com

Page 27: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2727

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTconclusion annexes

value-of : permet de récupérer le contenu d'un élément ou un attribut.

Syntaxe : <xsl:value-of select="motif XPath"/>

présentation du TP

for-each : permet d'itérer à partir d'un ou plusieurs critères.

Syntaxe : <xsl:for-each select="motif XPath">instructions</xsl:for-each>

if : permet de mettre une condition à la réalisation d'une action.

Syntaxe : <xsl:if match="motif XPath">instructions</xsl:if>

Page 28: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2828

choose : permet de prévoir une liste d'options définissant un choix suivant les différentes valeurs qui peuvent être prises par un élément when ou otherwise.

Syntaxe : <xsl:choose>

<xsl:when test="motif XPath">instructions</xsl:when>

<xsl:otherwise>autres instructions</xsl:otherwise>

</xsl:choose>

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4- Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTconclusion annexes présentation du TP

Page 29: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

2929

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLTconclusion annexes

Travail à réaliser :

1- dresser un tableau de toutes les marques de véhicules du fichier ainsi que leurs caractéristiques, puis traduire les en-tête de colonne en Espagnol.

2- refaire les exemples vu en cours.

présentation du TP

Page 30: 1 XSLT : trier et mettre en valeur le contenu dun document XML Cours d initiation : obtenir un document html Olivier Massone

3030

XSLT : présentation et formatage des données XML

Olivier Massone / AFPA-DI / octobre 2005

XSLT

4 - Coder en XSLT

1 - Rappels et pré requis

2- Origine du XSLT

3- Présentation du XSLT

Pupitreurs, à vos claviers !!!