Télécharger la présentation
1
Manipulation d’XML avec XSL
Formation XML SANDRE
2
La manipulation de fichiers XML
Directement avec un éditeur de texte Via la programmation deux librairies standards : DOM et SAX pour tous les langages de développement Nécessite de développer Avec un fichier XML ! Utilisation des technologies XSL … Formation XML/SANDRE
3
Principe de XSL XSL : eXtensible Stylesheet Language. HTML CSS XSL
Un standard du W3C Un langage de feuille de style XML HTML CSS XSL Trois composantes de XSL : XSLT le langage pour transformer un XML XPath pour retrouver une information dans un XML XSL-FO est un langage pour formater un document XML Formation XML/SANDRE
4
XPATH le langage pour trouver l’information
Une syntaxe pour définir une fraction d’un document XML Utilise des expressions pour naviguer dans des documents XML Contient une librairie standard de fonctions Un standard W3C. Formation XML/SANDRE
5
La terminologie XPath Les nœuds (nodes)
Valeurs atomiques (Atomic values) Relations entre nœuds : Parent Enfant Siblings : nœuds qui ont le même parent Ancestors : le parent d’un nœud, le parent du parent,… Descendants : le fils d’un nœud, le fils du fils du noeud,… Formation XML/SANDRE
6
Sélection d’un noeud / Le nœud racine . Le nœud courant .. Le nœud //
Principe : une sélection par répertoire ou « pas » Path expressions Exemples : /ReseauSurveillance/CdReseau /ReseauSurveillance/StationMesure/Analyse/DateAnalyse / Le nœud racine . Le nœud courant .. Le nœud // Tous les nœuds du nœud courant @ Les attributs * Tous les éléments @* Tous les attributs Formation XML/SANDRE
7
Prédicat ou comment sélectionner un noeud
Permet de sélectionner un ou plusieurs nœuds répondant à un ou plusieurs critères Ajout du critère entre crochet dans l’expression path Utilisation des opérateurs « classiques » Exemples : /ReseauSurveillance/StationMesure[1] //Analyse[DateAnalyse=" "] //Analyse[DateAnalyse=" " and CdParametre="1340"]/Resultat Formation XML/SANDRE
8
Raffinements en XPath Un ensemble de fonctions intégrés
floor(3.2) 3 substring(string,start,len) Last … Manipulation au sein de l’arbre Following-siblings::* ancestor-or-self::* Formation XML/SANDRE
9
XSLT, le langage de transformation
Le principe : Définit un ensemble de nœuds (parts) du document source qu’il fusionne avec une template Parcourt le document source. Dès qu’il trouve le nœud, il appelle la template et produit le document résultat Utilisation de fonctions dédiés à l’affichage des valeurs atomiques d’un document source Formation XML/SANDRE
10
Exemple de fichier XSL Formation XML/SANDRE Déclaration du XSLT
<xsl:stylesheet xmlns=" xmlns:xsl=" version="1.0" > <xsl:output method="html" version="1.0" encoding="ISO " indent="yes"/> <xsl:template match="/"> <html> <body> <h2>Les stations de mesure</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Code</th> <th align="left">Nom</th> </tr> <tr> <td><xsl:value-of select="ReseauSurveillance/StationMesure/CdStationMesure"/></td> <td><xsl:value-of select="ReseauSurveillance/StationMesure/NomStationMesure"/></td> </table> </body> </html> </xsl:template> </xsl:stylesheet> Déclaration du XSLT Une Template Formation XML/SANDRE
11
Exemple de boucle .. <xsl:template match="/"> <html>
<body> <h2>les stations de mesure</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Code</th> <th align="left">Nom</th> </tr> <xsl:for-each select="ReseauSurveillance/StationMesure"> <tr> <td><xsl:value-of select="CdStationMesure"/></td> <td><xsl:value-of select="NomStationMesure"/></td> </xsl:for-each> </table> </body> </html> On boucle sur chaque information Formation XML/SANDRE
12
Exemple de tri <xsl:sort select="DateAnalyse"/>
<body> <h2>les stations de mesure</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Code</th> <th align="left">Nom</th> <th align="left">Liste des codes paramètres</th> </tr> <xsl:for-each select="ReseauSurveillance/StationMesure"> <tr> <td><xsl:value-of select="CdStationMesure"/></td> <td><xsl:value-of select="NomStationMesure"/></td> <td> <xsl:for-each select="Analyse"> <xsl:sort select="DateAnalyse"/> <br><xsl:value-of select="CdParametre"/> le <xsl:value-of select="DateAnalyse"/></br> </xsl:for-each> </td> Formation XML/SANDRE
13
Exemple de condition <xsl:if test="Insitu=1">X</xsl:if>
<xsl:for-each select="ReseauSurveillance/StationMesure"> <tr> <td><xsl:value-of select="CdStationMesure"/></td> <td><xsl:value-of select="NomStationMesure"/></td> <td> <table border="1"> <th>paramètre</th> <th>Date</th> <th>Résultat</th> <th>Insitu</th> </tr> <xsl:for-each select="Analyse"> <xsl:sort select="DateAnalyse"/> <td><xsl:value-of select="CdParametre"/> </td> <td><xsl:value-of select="DateAnalyse"/></td> <td><xsl:value-of select="Resultat"/></td> <xsl:if test="Insitu=1">X</xsl:if> </td> … Formation XML/SANDRE
14
Comment appliquer XSL sur un fichier XML
Ajout d’une feuille de style au fichier XML Ajout en début du fichier XML : <?xml-stylesheet type="text/xsl" href="XSLT_4.xslt"?> Utilisation d’un simple navigateur WEB compatible Via un développement informatique Appel de la feuille de transformation sur le fichier XML Formation XML/SANDRE
15
XML sous autre structure
L’utilisation de XSL XML sous autre structure XML HTML, PDF Fichier XSL TEXTE Formation XML/SANDRE
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.