View
106
Download
4
Category
Preview:
Citation preview
1
Manipulation d’XML avec XSL
Formation XML SANDRE
Formation XML/SANDRE 214 avril 2005
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 314 avril 2005
Principe de XSL
• XSL : eXtensible Stylesheet Language. – 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 414 avril 2005
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 514 avril 2005
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 614 avril 2005
Sélection d’un noeud
• Principe : une sélection par répertoire ou « pas »• Path expressions
• Exemples :– /ReseauSurveillance/CdReseau – /ReseauSurveillance/StationMesure/Analyse/DateAnalyse– //@schemeAgencyID
/ 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 714 avril 2005
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="2005-03-23"]– //Analyse[DateAnalyse="2005-03-23" and
CdParametre="1340"]/Resultat
Formation XML/SANDRE 814 avril 2005
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 914 avril 2005
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 1014 avril 2005
Exemple de fichier XSL<xsl:stylesheet xmlns="http://www.rnde.tm.fr/francais/sa/xml/scenario/formation" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" ><xsl:output method="html" version="1.0" encoding="ISO-8859-1" 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> </tr></table> </body> </html></xsl:template>
</xsl:stylesheet>
Déclaration du XSLT
Une Template
Formation XML/SANDRE 1114 avril 2005
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> </tr> </xsl:for-each> </table> </body> </html>..
On boucle sur chaque information
Formation XML/SANDRE 1214 avril 2005
Exemple de tri<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> </tr>
Formation XML/SANDRE 1314 avril 2005
Exemple de condition<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"> <tr>
<th>paramètre</th> <th>Date</th>
<th>Résultat</th><th>Insitu</th></tr><xsl:for-each select="Analyse">
<xsl:sort select="DateAnalyse"/> <tr>
<td><xsl:value-of select="CdParametre"/> </td> <td><xsl:value-of select="DateAnalyse"/></td> <td><xsl:value-of select="Resultat"/></td> <td> <xsl:if test="Insitu=1">X</xsl:if>
</td>…
Formation XML/SANDRE 1414 avril 2005
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 1514 avril 2005
L’utilisation de XSL
XMLXML
XMLsous autre structure
XMLsous autre structure
HTML, PDFHTML, PDF
TEXTETEXTE
Fichier XSL
Recommended