le langage de transformation xsl - academiepro.com€¦ · xsl-fo (pour xml stylesheet language -...
TRANSCRIPT
![Page 1: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/1.jpg)
Le langage de Transformation XSL
� Formatage d’un document XML,
�Le langage XSLT:�Le langage XSLT:
�Définition,
�Principe de fonctionnement,
�Structure d’une feuille de style,
�Format d’une règle de transformation,
� Tri, Choix et Filtre avec XSLTProf. M.D.RAHMANI Technologies XML Master IT 2013-2014 1
![Page 2: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/2.jpg)
Formatage d’un document XMLCSS:
CSS1 et CSS2 (Cascading Style Sheets) sont des feuilles de style dédiées à la présentation visuelle de documents XML.
XSL:Le langage XSL eXtensibleStylesheetLanguage), permet d’effectuer des Le langage XSL eXtensibleStylesheetLanguage), permet d’effectuer des transformations sur un document XML.
API:Une autre façon de formater un document consiste à modifier son contenu par un programme (Java, C++, PERL,…), pour aboutir à un document HTML ou un format de sortie donnée. Les deux principales catégories d’API sont (SAX pour Simple API XMLet DOM pour Document Object Model)
2Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 3: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/3.jpg)
Le langage XSLT
Le langage XSL (eXtensible Style Language) a été conçu pour transformer des documents XML en d'autres formats comme PDF ou des pages HTML .
Il est constitué de 2 langages:� XSLT (pour XML Stylesheet Language Transformation) est un langage
de transformation de documents XML.
� XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document.
Ces 2 langages sont des applications XML.
3Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 4: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/4.jpg)
Définition
XSLT est un langage qui permet d’appliquer des règles de transformation sur un document XML donné en entrée, et de générer en sortie un document XML, HTML ou une autre forme.
Le processus de transformation d'un document XML en un document imprimable, au format PDF par exemple, est donc découpé en deux phases:
1- le document XML est transformé en un document XSL-FO à l'aide de feuilles de style XSLT.
2- Dans la seconde phase, le document FO obtenu à la première phase est converti par un processeur FO en un document imprimable.
4Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 5: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/5.jpg)
Principe de fonctionnement
�Une transformation XSLT- appelée une feuille de style – consiste en une série de règles pour transformer un arbre source (source tree) XML en un arbre résultant (resulttree).tree) XML en un arbre résultant (resulttree).
�La transformation se fait en associant des motifs (patterns) à des modèles (templates)et en les appliquant aux éléments de l’arbre source.
5Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 6: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/6.jpg)
Exemple
Soit un document XML: catalogue.xml
<?xml version="1.0" standalone="yes"?><?xml-stylesheet type="text/xsl" href="transfo.xsl"? ><Catalogue><Catalogue>
<CD><!-- Bon CD --><Titre> Best of Bob Dylan<Titre><Jacket NOM="dylan.gif"/ ><?audio dylan.mp3?>
</CD></Catalogue>
6Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 7: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/7.jpg)
Exemple: L’ arbre associé
Racine
PI: xml-stylesheet El: Catalogue
El: CD
Commentaire El: Titre El: Jacket PI: audio
Texte Texte Att: Nom
7Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 8: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/8.jpg)
Structure d’une feuille de style XSLT
<?xml version="1.0" ?><xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><!-- les règles de transformations -->..............
</xsl:stylesheet>
Remarque:
Toutes les instructions XSL appartiennent à l’espace de noms xsl, elles commencent toutes par xsl:
8Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 9: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/9.jpg)
Format d’une règle de transformation
Un motif est une expression qui identifie le/les nœud(s) XML du document qui est/sont concerné(s) par la règle et sur le(s) quel(s) il faut appliquer une action
Une action est une opération qui réalise la transformation et/ou spécifie les caractéristiques de la présentation
<xsl:template match=‘ un motif ’>[action]
</xsl:template>
9Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 10: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/10.jpg)
Exemple 1: document demo.xml
<?xml version="1.0"?>
<?xml -stylesheet type=" text /xsl " href ="demo.xsl"?>href ="demo.xsl"?>
<demoXML>
<message>
Voici du XML
</message>
</ demoXML>
10Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 11: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/11.jpg)
Exemple1: le document xsl associé demo.xsl
<?xml version="1.0"?><xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match=" / "><xsl:template match=" / "><html>
<body><xsl:value-of select ="demoXML/message"/>
</body></html>
</xsl:template></xsl:stylesheet>
11Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 12: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/12.jpg)
Remarques:
� La balise <xsl:value-of> permet de sélectionner un élément du fichier XML pour le traiter dans le fichier XSL.
Dans l'attribut select , on détermine le chemin d'accès vers la balise XML souhaitée.la balise XML souhaitée.
� La balise template indique le format de transformationL’attribut match mentionne les éléments qui sont concernés
par la transformation,
� / indique l'élément racine et tous les sous éléments
12Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 13: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/13.jpg)
Exemple 2: enfants.xml (IE!)
Enfants.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="enfants.xsl" type="text/xsl"?>
<enfants><enfant>
<nom>Ali</nom>
Enfants.xsl
<?xml version="1.0" encoding="ISO-8859-1"?><html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<body style="font-family:Arial; font-size:12pt;"><xsl: for-each select="enfants/enfant"><div style="background-color:teal; color:white;"><span style="font - weight:bold ; color:white ;
<nom>Ali</nom><lien>garçon</lien><date>07/11/83</date><data>Une tête brulée!</data>
</enfant><enfant>
<nom>Samia</nom><lien>fille</lien><date>20/12/85</date><data>La petite fille chérie à
son papa.</data></enfant>
</enfants>
<span style="font - weight:bold ; color:white ; padding:4px"><xsl:value-of select="nom"/><xsl:value-of select="lien"/> </span></div><div style="margin-left:20px; font-size:10pt"><span> Anniversaire le <xsl:value-of select="date"/></span><span style="font-style:italic"> -<xsl:value-of select="data"/></span></div> </xsl: for-each >
</body></html>
Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014 13
![Page 14: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/14.jpg)
Le langage XSLT: exemple
Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014 14
![Page 15: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/15.jpg)
Exemple 3: compilation.xml<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="compilation.xsl"?>
<compilation>
<mp3>
<titre>Foule sentimentale</titre>
<artiste>Alain Souchon</artiste>
<mp3>
<titre>Pourtant</titre>
<artiste>Vanessa Paradis</artiste>
</mp3>
<mp3>
<titre>Chambre avec vue</titre>
<artiste>Henri Salvador</artiste><artiste>Alain Souchon</artiste>
</mp3>
<mp3>
<titre>Solaar pleure</titre>
<artiste>MC Solaar</artiste>
</mp3>
<mp3>
<titre>Le baiser</titre>
<artiste>Alain Souchon</artiste>
</mp3>
<artiste>Henri Salvador</artiste>
</mp3>
</compilation>
15Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 16: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/16.jpg)
Exemple 3: films.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="films.xsl"?>
<films><film>
<titre>Papa est en vayage
<film> <titre>Le tableau noir</titre><realisateur>Samira
Makhmalbaf</realisateur></film><film>
<titre>Chat noir chat blanc</titre><realisateur>Emir <titre>Papa est en vayage
d'affaires</titre><realisateur>Emir
Kusturica</realisateur></film><film>
<titre>Matador</titre><realisateur>Pedro
Almodovar</realisateur></film>
<realisateur>Emir Kusturica</realisateur></film><film>
<titre>Amores perros</titre><realisateur>Alejandro
gonzales</realisateur></film>
</films>
16Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 17: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/17.jpg)
Exemple 3: La feuille associée films.xsl
<?xml version='1.0' encoding="ISO-8859-1"?>
<xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<td>
<xsl:value-ofselect ="films/film/titre"/>
</td>
<td>
<xsl:value-ofselect ="films/film/ realisateur "/><html>
<body>
<table border="1" cellspacing="0" cellpadding="3">
<tr bgcolor="#FFFF00">
<td>Titre</td>
<td>Réalisateur</td>
</tr>
<tr>
select ="films/film/ realisateur "/>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
17Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 18: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/18.jpg)
Le résultat
18Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 19: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/19.jpg)
Sélection de tous les titres: filmsTous.xslPour afficher tous les éléments, on ajoute la balise:xsl:for-each (pour chaque)avec comme attribut select="films/film"
<?xml version='1.0' encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XS L/Transform" version="1.0">
<xsl:template match="/"><html>
<body><table border="1" cellspacing="0" cellpadding="3">
<tr bgcolor="#FFFF00"><td>Titre</td>
Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014 19
<td>Titre</td><td>Réalisateur</td>
</tr><xsl:for-each select="films/film">
<tr><td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td>
</tr></xsl:for-each></table>
</body></html>
</xsl:template></xsl:stylesheet>
![Page 20: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/20.jpg)
Le résultat
20Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 21: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/21.jpg)
Les autres possibilités du langage XSLT
Le langage XSLT permet aussi de :
� trier les données XML en ordre croissant ou décroissant.décroissant.
� filtrer des éléments XML en fonction de certains critères.
� choisir des éléments.
� retenir des éléments par des tests conditionnels.
21Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 22: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/22.jpg)
Trier avec XSLT1- il suffit d'ajouter l'attribut:
order-by="+balise" pour trier en ordre croissant et order-by="-balise" pour trier en ordre décroissant.pour l'espace de nom:
xmlns:xsl ="http://www.w3.org/TR/WD - xslxmlns:xsl ="http://www.w3.org/TR/WD - xsl
2- Ou bien, l'attribut:order="ascending" pour trier en ordre croissant etorder="descending" pour trier en ordre décroissant.pour l'espace de nom:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ve rsion="1.0"
22Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 23: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/23.jpg)
Trier avec XSLT: filmsO1.xsl
Trier en ordre alphabétique croissant du nom des réalisateurs <?xml version='1.0' encoding="ISO-
8859-1"?><xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<! -- xsl:stylesheet
<xsl:for-each select="films/film" order-by="+realisateur" >
<tr>
<td><xsl:value-of select="realisateur"/> </td>
<td>< xsl:value - of <! -- xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"-->
<xsl:template match="/"><html><body>
<table border="1" cellspacing="0" cellpadding="3"><tr bgcolor="#FFFF00"><td>Réalisateur</td><td>Titre</td></tr>
<td>< xsl:value - of select="titre"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
23Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 24: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/24.jpg)
Le résultat
24Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 25: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/25.jpg)
Trier avec XSL: filmsO2.xsl
Trier en ordre alphabétique croissant du nom des artistes. <?xml version='1.0'
encoding="ISO-8859-1"?><xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:for-each select="films/film">
<xsl:sortselect="realisateur" order="descending" />
<tr>
<td><xsl:value-of select="realisateur"/> </td><xsl:template match="/">
<html><body>
<table border="1" cellspacing="0" cellpadding="3"><tr bgcolor="#FFFF00"><td>Réalisateur</td><td>Titre</td></tr>
</td>
<td><xsl:value-of select="titre"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>25Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 26: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/26.jpg)
Le résultat
26Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 27: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/27.jpg)
Filtrer avec XSLT
Le langage XSLT permet de filtrer les données du fichier XML associé selon les critères:
égal, pas égal, plus grand que, plus petit que
Pour ce faire, on utilise l'attribut: select="chemin_d'accès[balise='xxx']"
Les opérateurs possibles sont := pour égal .!= pour différent .> pour plus grand que .< pour plus petit que .
27Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 28: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/28.jpg)
Filtrer avec XSLT: compilationFiltre.xslLa sélection des titres de l'artiste Alain Souchon. L'attribut select devient:
select="films/film[realisateur='Emir Kusturica']"<?xml version='1.0' encoding="ISO-8859-1" ?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"><xsl:template match="/">
<html><body>
<table border="1" cellspacing="0" cellpadding="3"><tr bgcolor ="#FFFF00"><tr bgcolor ="#FFFF00"><td>Titre</td><td>Réalisateur</td></tr><xsl:for-each select="films/film[realisateur='Emir Kusturica']" >
<tr><td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td></tr>
</xsl:for-each></table>
</body></html>
</xsl:template></xsl:stylesheet>
28Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 29: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/29.jpg)
Filtrer avec XSLT:
29Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 30: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/30.jpg)
Le Choix avec XSLT
La balise <xsl:if> ... </xsl:if> permet d'effectuer un choix dans les données du fichier XML.
On ajoute l'attribut match où l'on indique l'élément choisi.
<xsl:if match=".[balise='xxx']">balises Html
</xsl:if>
30Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 31: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/31.jpg)
Le choix avec XSLT: filmsChoix.xsl<?xml version='1.0' encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-x sl"><!--xsl:stylesheet xmlns:xsl="http://www.w3.org/1999 /XSL/Transform"
version="1.0"--> <xsl:template match="/">
<html><body>
<table border="1" cellspacing="0" cellpadding="3"><tr bgcolor="#FFFF00">
<td>Titre</td><td>Réalisateur</td>
</tr></tr><xsl:for-each select="films/film">
<xsl:if match=".[realisateur='Samira Makhmalbaf']"><tr>
<td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td>
</tr></xsl:if>
</xsl:for-each></table>
</body></html>
</xsl:template></xsl:stylesheet>
31Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 32: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/32.jpg)
Le choix avec XSLT: résultat
32Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 33: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/33.jpg)
Le choix conditionnel: compilationCond.xsl
Le choix conditionnel se fait avec:<xsl:choose> .
<xsl:when une action xsl:otherwise une autre action</xsl:choose>
<xsl:choose><xsl:when test=".[artiste='Emir Kusturica']">
<tr bgcolor="#00FF00"><td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td>
</tr></xsl:when><xsl:otherwise>
<tr><td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td>
</tr></xsl:otherwise>
</xsl:choose>
33Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 34: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/34.jpg)
XSLT: Choix conditionnel<?xml version='1.0' encoding="ISO-
8859-1"?><xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/"><html><body>
<table border="1" cellspacing="0" cellpadding="3"><tr bgcolor ="#FFFF00">
<xsl:otherwise>
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="realisateur"/></td>
</tr>
</xsl:otherwise>
</ xsl:choose ><tr bgcolor ="#FFFF00"><td>Réalisateur</td><td>Titre</td></tr><xsl:for-eachselect="films/film"><xsl:choose><xsl:whentest=".[realisateur='Emir Kusturica']"><tr bgcolor="#00FF00"><td><xsl:value-of select="titre"/></td><td><xsl:value-of select="realisateur"/></td></tr></xsl:when>
</ xsl:choose >
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014 34
![Page 35: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/35.jpg)
Le choix conditionnel: résultat
Tous les titres d'Alain Souchon seront affichés dans une colonne verte, les autres seront affichés normalement.
35Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014
![Page 36: Le langage de Transformation XSL - academiepro.com€¦ · XSL-FO (pour XML Stylesheet Language - Formatting Objets) est un langage de mise en page de document. Ces 2 langages sont](https://reader034.vdocuments.mx/reader034/viewer/2022052306/5ba5944709d3f22e738cdd02/html5/thumbnails/36.jpg)
Plusieurs choix sur la sélection<xsl:choose>
<xsl:when test="quelque-chose">[ action]
</xsl:when><xsl:when test="autre-chose">
[ action][ action]</xsl:when>
...<xsl:otherwise>
[ action]</xsl:otherwise>
</xsl:choose>
36Prof. M.D.RAHMANI Technologies XML Master IT 2013-2014