• Aucun résultat trouvé

TP 3 – XSLT et programmation avec XML (modèle DOM et SaX) Objectif

N/A
N/A
Protected

Academic year: 2022

Partager "TP 3 – XSLT et programmation avec XML (modèle DOM et SaX) Objectif"

Copied!
3
0
0

Texte intégral

(1)

LP SIL 2007-2008 Département Informatique XML

TP 3 – XSLT et programmation avec XML (modèle DOM et SaX)

Objectif : savoir utiliser les XSL comme langage de style et introduction à la capacité de transformation de ce langage.

1. Afficher un document XML à l’aide d’une feuille de style XSL (Extensible Stylesheet Language)

1.1. Définissez une feuille de style biblio.xsl afin de produire l’affichage sous la forme ci- dessous : titre, noms des livres en gras, éléments livres séparés par des sauts de ligne, éléments livres séparés par des marques de paragraphe)

Ma Bibliothèque

Titre : Les Misérables Auteur : Victor Hugo Nombre de tomes : 3

Titre : L'Assomoir Auteur : Émile Zola Nombre de tomes :

Titre : David Copperfield Auteur : Charles Dickens Nombre de tomes : 3

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<html><body>

<h1>Ma bibliothèque</h1>

<xsl:for-each select="biblio/livre">

<b>Titre: </b> <xsl:value-of select="titre" /> <br/>

<b>Auteur: </b> <xsl:value-of select="auteur" /> <br/>

<b>Nombre de tomes: </b> <xsl:value-of select="nb_tomes" /> <p/>

</xsl:for-each>

</body></html>

</xsl:template>

</xsl:stylesheet>

1.2. Dans le prologue de biblio.xml, mettez en commentaire l’appel à la feuille de style

CSS et intégrez l’appel à la feuille de style XSL à la place. Tester.

(2)

<!-- Appel feuille de style css en commentaire

<?xml-stylesheet type="text/css" href="biblio.css" ?>

-->

<?xml-stylesheet type="text/xsl" href="biblio.xsl" ?>

1.3. Définissez une deuxième feuille de style biblio2.xsl afin de ranger les livres par ordre alphabétique, sans afficher le nombre de tomes lorsqu’il n’est pas renseigné et indiquer lorsqu’un livre est en anglais. Produire l’affichage sous la forme d’une table html comme ci-dessous. Tester.

Ma Bibliothèque

Titre: David Copperfield Auteur: Charles Dickens Nombre de tomes: 3 Ce livre est en anglais.

Titre: L'Assomoir Auteur: Émile Zola

Titre: Les Misérables Auteur: Victor Hugo Nombre de tomes: 3

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html><body>

<h1>Ma bibliotheque</h1>

<xsl:for-each select="biblio/livre">

<xsl:sort select="titre" />

<b>Titre: </b> <xsl:value-of select="titre" /> <br/>

<b>Auteur: </b> <xsl:value-of select="auteur" /> <br/>

<xsl:if test="nb_tomes"><b>Nombre de tomes: </b> <xsl:value-of select="nb_tomes" />

</xsl:if>

<xsl:if test="@lang='en'"><br /><i>Ce livre est en anglais.</i>

</xsl:if>

<p/>

</xsl:for-each>

</body></html>

</xsl:template>

</xsl:stylesheet>

1.4. Définissez une troisième feuille de style biblio3.xsl afin de produire l’affichage sous la

forme d’une table html comme ci-dessous. Tester.

(3)

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html><body>

<h1>Ma bibliotheque</h1>

<table border="3" cellspacing="2" cellpadding="6">

<thead align="center" bgcolor="yellow">

<th>Titre</th><th>Auteur</th><th>Nombre de tomes</th><th> Langue</th>

</thead>

<tbody>

<xsl:for-each select="biblio/livre">

<xsl:sort select="titre" />

<tr>

<td> <xsl:value-of select="titre" /> </td>

<td> <xsl:value-of select="auteur" /> </td>

<td> <xsl:if test="nb_tomes"><b>Nombre de tomes :</b> <xsl:value-of select="nb_tomes" />

</xsl:if>

<xsl:if test="not(nb_tomes)">-</xsl:if>

</td>

<td> <xsl:if test="@lang='en'"><i>Ce livre est en anglais.</i>

</xsl:if>

<xsl:if test="not(@lang='en')">-</xsl:if>

</td>

</tr>

</xsl:for-each>

</tbody>

</table>

</body></html>

</xsl:template>

</xsl:stylesheet>

2. XSL pour la problématique « réglementaire »

Personnalisez l’affichage des données réglementaires (XSL) : 2.1. affichez toutes les données

2.2. utilisez les expressions XPATH (TP2)

EX

<xsl:for-each select="/base/document">

<tr>

<td> <xsl:value-of select=" thematique" /> </td>

<xsl:if test="sigle"><b>Sigle: </b> <xsl:value-of select="sigle" />

</xsl:if>

</tr>

</xsl:for-each>

<xsl:for-each select="/base/document[thematique][date/@datePubli]>

<tr>

<td> <xsl:value-of select="." /> </td>

</tr>

</xsl:for-each>

Références

Documents relatifs

Chaque document possède d’un titre complexe qui se compose d’un numéro, d’une date, d’un nom, parfois d’un sigle et est relatif à un ou plusieurs domaines spécifiques. La

Chaque document possède d’un titre complexe qui se compose d’un numéro, d’une date, d’un nom, parfois d’un sigle et est relatif à un ou plusieurs domaines spécifiques. La

• Ecrivez 5 requêtes XPath différentes permettant de « récolter » la majorité de l’information de votre XML (voir ex.1, ex.2 pour composer les expressions de

• Ecrivez 5 requêtes XPath différentes permettant de « récolter » la majorité de l’information de votre XML (voir ex.1, ex.2 pour composer les expressions de

1.1. Définissez une feuille de style biblio.xsl afin de produire l’affichage sous la forme ci- dessous : titre, noms des livres en gras, éléments livres séparés par des sauts de

utilisateur entre le critère selon lequel vous devez filtrer les documents ordonner/afficher par «. utilisateur entre le critère et

Introduction Pr´ esentation XSLT Comment transformer XML avec XSLT Programme XSLT.. Transformation de documents XML

Cliquez ici pour telecharger le