15
1 Manipulation d’XML avec XSL Formation XML SANDRE

1 Manipulation dXML avec XSL Formation XML SANDRE

Embed Size (px)

Citation preview

Page 1: 1 Manipulation dXML avec XSL Formation XML SANDRE

1

Manipulation d’XML avec XSL

Formation XML SANDRE

Page 2: 1 Manipulation dXML 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 …

Page 3: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 4: 1 Manipulation dXML avec XSL Formation XML SANDRE

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.

Page 5: 1 Manipulation dXML avec XSL Formation XML SANDRE

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,…

Page 6: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 7: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 8: 1 Manipulation dXML avec XSL Formation XML SANDRE

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::*

Page 9: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 10: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 11: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 12: 1 Manipulation dXML avec XSL Formation XML SANDRE

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>

Page 13: 1 Manipulation dXML avec XSL Formation XML SANDRE

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>…

Page 14: 1 Manipulation dXML avec XSL Formation XML SANDRE

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

Page 15: 1 Manipulation dXML avec XSL Formation XML SANDRE

Formation XML/SANDRE 1514 avril 2005

L’utilisation de XSL

XMLXML

XMLsous autre structure

XMLsous autre structure

HTML, PDFHTML, PDF

TEXTETEXTE

Fichier XSL