Académique Documents
Professionnel Documents
Culture Documents
Cours Chap 4-XPATH-XSL (T) - Web Avancé Smi s6
Cours Chap 4-XPATH-XSL (T) - Web Avancé Smi s6
Chap 4: XPATH-XSL(T)
Par O. Boutkhoum
◼ Le fichier XML stocke les données du document sous forme d’un arbre
◼ DTD ( Data Type Definition ) ou Schémas XML définit la structure du fichier XML
2
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
XSL(T)-XPATH
XSL signifie eXtensible Stylesheet Langage, ou langage extensible de feuille de style.
XSL recouvre en fait deux langages:
◼ XPath (XML Path Language) est utilisé pour parcourir les éléments et les attributs dans
les documents XML.
3
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
XPATH
Introduction:
XPath est une spécification (un standard du W3C) fondée sur l'utilisation de chemin d'accès permettant
de naviguer à travers des éléments et des attributs au sein du document XML:
4
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Chemin de localisation
Un chemin de localisation peut être de type absolu ou relatif.
◼ Dans le cas où il est de type absolu, il commence toujours par le signe / indiquant la racine du document XML ;
◼ Dans le cas où il est de type relatif, le nœud de départ est le nœud contextuel courant.
Exemple:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<repertoire>
<personne sexe="masculin">
<nom>DOE</nom>
<prenom>John</prenom>
<telephones>
<telephone type="fixe">01 02 03 04 05</telephone>
<telephone type="portable">06 07 08 09 10</telephone>
</telephones>
</personne>
</repertoire>
5
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Chemin de localisation: syntaxe
La syntaxe de composition d'un chemin de localisation peut être de type abrégé ou non abrégé.
Un chemin de localisation est composé de trois parties :
axe::nœud[predicat][predicat]...[predicat]
◼ un axe, définissant le sens de la relation entre le noeud courant et le jeu de noeuds à localiser;
◼ un noeud spécifiant le type de noeud à localiser;
◼ 0 à n prédicats permettant d'affiner la recherche sur le jeu de noeuds à récupérer.
◼ Par exemple, dans le chemin child::section[position()=1],
child est le nom de l'axe,
[position()=1] est un prédicat. Les doubles :: sont obligatoires dans ce type de syntaxe (non abrégé).
◼ Dans cet exemple, on cherche dans le noeud courant, un noeud section qui est le premier noeud de
son type.
6
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Chemin de localisation: Axes
7
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Chemin de localisation: Sélection des nœuds
XPath utilise des expressions de chemin pour sélectionner des nœuds dans un document XML. Les plus utilisé sont :
Expression description
nomNoeud Sélectionne tous les nœuds (fils de l'élément courant) avec le nom "nomNoeud".
descendant::livre Sélectionne tous les nœuds livres descendants du nœud actuel. de localisation livre/para est un raccourci pour
(abréviation: //livre) child::livre/child::para.
ancestor::livre Sélectionne tous les nœuds livres ancêtres du nœud actuel. - Il en est de même pour les attributs.
Par exemple, para[@type="test"] est un
ancestor-or- Sélectionne tous livres ancêtres du nœud actuel - ainsi que le nœud
self::livre courant s'il s'agit d'un nœud de livre raccourci pour child::para[attribute::type="test"]
Manipulation de nombres
◼ floor(nombre) : retourne le plus grand entier inférieur à l'argument passé à la fonction (plus grand entier <= nombre).
◼ ceiling(nombre) : retourne le plus petit entier supérieur à l'argument passé à la fonction (plus petit entier >= nombre).
◼ round(nombre) : retourne l'entier le plus proche de l'argument passé à la fonction (entier le plus proche de nombre).
11
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Quelques opérateurs XPath
12
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
Exemples de sélections d’éléments avec XPath :
Lignée de noms :
◼ /cars/car
◼ /cars/car/year
◼ //year
Présence d’un sous-élément (fils) : /cars/car[country]/year
Contrainte sur la valeur d’un élément :
◼ /cars/car[year=2000]
◼ /cars/car[year!=2000]
◼ /cars/car[year=2000]/year
Contrainte sur la valeur d’un attribut : /cars/car[@mark="Peugeot"]
Position dans la fratrie :
◼ /cars/car[1]
◼ /cars/car[last()]
◼ /cars/car[last() -1]
À tester : /*
À tester : //*
À tester : //@*
13
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
XPATH
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
Exemple 1: Nous allons utiliser le document XML "books.xml" dans les <price>30.00</price> books.xml
exemples ci-dessous: </book>
<book category="children">
1.Sélectionner tous les titres. <title lang="en">Harry Potter</title>
/bookstore/book/title ou /bookstore//title ou ... <author>J K. Rowling</author>
<year>2005</year>
2.Sélectionner le titre du premier livre <price>29.99</price>
/bookstore/book[1]/title </book>
<book category="web">
3.Sélectionner tous les prix <title lang="en">XQuery Kick Start</title>
/bookstore/book/price[text()] ou /bookstore/book/price ou … <author>James McGovern</author>
<author>Per Bothner</author>
4.Sélectionner les nœuds de prix avec un prix> 35 <author>Kurt Cagle</author>
/bookstore/book[price>35]/price <author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
5.Sélectionner les noeuds de titre avec un prix> 35 <year>2003</year>
/bookstore/book[price>35]/title <price>49.99</price>
</book>
6.Sélectionner les nœuds de titre dont la catégorie du livre est "cooking" <book category="web">
➢/bookstore/book[attribute::category="cooking"]/title <title lang="en">Learning XML</title>
➢/bookstore/book[@category="cooking"]/title <author>Erik T. Ray</author>
<year>2003</year>
➢/descendant::*[attribute::category=“cooking"]/title <price>39.95</price>
</book>
</bookstore> 14
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XPATH
➢ Exemple 2: Considérons le fichier XML suivant, l’élément courant étant l’élément racine A :
<A>
<B> <C>C1</C> </B>
<B> <C>C2</C> </B>
<D> <C>C3</C> </D>
<E> <B> <C>C4</C> </B> </E>
<B> <E> <C>C5</C> </E> </B>
</A>
15
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Introduction
XSLT (eXtensible Stylesheet Language Transformations) est le langage de feuille de style recommandé
pour XML.
16
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Introduction: Question de style
Les feuilles de styles XSLT sont basés sur des modèles (templates) de transformation que l'on note :
<xsl:template match="/">.
: saxon, …
19
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Référencer un document XSLT
Le référencement d'un document XSLT se fait via une instruction de traitement à placer sous
le prologue et avant l'élément racine du document XML à transformer:
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl" ?>
20
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
XSLT <catalog>
href="cdcatalog.xsl" ?>
<cd>
<title>Empire Burlesque</title>
Exemple : <artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
Exemple d'un document XML (cdcatalog.xml) lié à une feuille de style <price>10.90</price>
<year>1985</year>
XSL à l'aide d'une instruction de traitement (xml-stylesheet).
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog> 21
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
Exemple: xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
Et voici la feuille de style XSL associée: cdcatalog.xsl <html>
<body>
<h2>My CD Collection</h2>
Résultats de la transformation: <table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
✓ La valeur par défaut de la méthode de <td><xsl:value-of select="artist"/></td>
</tr>
l’élément <xsl:output …/> est XML (mais si
</xsl:for-each>
le premier enfant du nœud racine est <html> </table>
et qu'il n'y a pas de nœuds de texte </body>
</html>
précédents, la valeur par défaut est HTML)
</xsl:template>
</xsl:stylesheet> 22
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT: Les éléments de XSLT sont des instructions qui sont exécutées par le processeur XSLT.
➢ <xsl:value-of>
Cet élément permet d'insérer la valeur d'un noeud dans la transformation
Syntaxe: <xsl:value-of select="nom_element" />
◼ permet d'extraire la valeur d'un élément XML ou la valeur de ses attributs.
◼ possède un attribut select auquel il convient de renseigner une expression XPath permettant alors de sélectionner les
informations à extraire :
<xsl:value-of select="expression XPath" />
23
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:element>
Cet élément insère un nouvel élément dans la transformation. Le nom de l'élément est donné par l'attribut name.
L'utilisation de cet élément est de la forme :
<xsl:for-each select="catalog/cd">
<xsl:element name="singer">
<xsl:value-of select="artist" />
</xsl:element>
</xsl:for-each>
24
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:attribute>
Cet élément définit un attribut et l'ajoute à l'élément résultat de la transformation. L'utilisation de cet élément est de
la forme :
<xsl:attribute name="nom">valeur</xsl:attribute>
◼ name correspond au nom de l'attribut à ajouter dans le contexte courant.
◼ valeur correspond à la valeur à lui donner. Par exemple :
<image>
<xsl:attribute name="src">test.gif</xsl:attribute>
</image>
◼ Cet exemple permet d'ajouter à l'élément image l'attribut src et de lui affecter la valeur test.gif, ce qui a pour
effet de produire en sortie l'élément suivant :
<image src="test.gif"></image>
◼ On aurait pu, de manière tout à fait équivalente, écrire
<xsl:element name="image">
<xsl:attribute name="src">test.gif</xsl:attribute>
</xsl:element>
25
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:for-each>
Crée une boucle dans laquelle sont appliquées des transformations.
Son utilisation est de la forme :
<xsl:for-each select="jeunoeud">
…..
</xsl:for-each>
◼ select correspond au jeu de noeuds devant être parcouru par la boucle.
Exemple :
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
26
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:apply-templates>
Permet d’appliquer les transformation à l'élément actuel ou aux nœuds enfants de l'élément actuel en
utilisant les templates définis.
Exemple:
<xsl:template match="cd">
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</xsl:template>
<xsl:template match="title">
Title: <span style="color:#ff0000"><xsl:value-of select="."/></span>
<br />
</xsl:template>
<xsl:template match="artist">
Artist: <span style="color:#00ff00"><xsl:value-of select="."/></span>
<br />
</xsl:template>
27
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:sort>
Cet élément permet d'effectuer un tri sur un jeu de nœuds (trier la sortie).
Il doit être placé soit dans un élément <xsl:for-each> soit dans un élément <xsl:apply-templates>.
L'utilisation de cet élément est de la forme :
<xsl:sort select="noeud" data-type="text | number | elt" order="ascending | descending" lang="nmtoken"
case-order="upperfirst | lower-first" />
◼ select permet de spécifier un noeud comme clé de tri.
◼ data-type correspond au type des données à trier. Dans le cas où le type est number, les données sont
converties puis triés.
◼ order correspond à l'ordre de tri. Cet attribut vaut ascending ou descending.
◼ lang spécifie quel jeu de caractères utiliser pour le tri ; par défaut, il est déterminé en fonction des
paramètres système.
◼ case-order indique si le tri a lieu sur les majuscules ou minuscules en premier.
28
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:sort>
Exemple :
<ul>
<xsl:for-each select="livre">
<xsl:sort select="auteur" order="descending" />
<li><b><xsl:value-of select="auteur" /></b><br />
<xsl:value-of select="titre" /></li>
</xsl:for-each>
</ul>
Dans cet exemple, la liste des livres est classée dans l'ordre alphabétique décroissant des noms d'auteurs.
29
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:if>
Utilisé pour mettre un test conditionnel sur le contenu du fichier XML. Il est possible de tester:
◼ La présence d'un attribut,
◼ La présence d'un élément,
◼ Si un élément est bien le fils d'un autre, Exemple d'utilisation:
◼ Les valeurs des éléments et attributs.
<ul>
L'utilisation de cet élément est de la forme : <xsl:for-each select="livre">
<xsl:if test="condition"> <li>
Action en sortie si la condition est vrai
<b><xsl:value-of select="auteur" /><br /></b>
<xsl:value-of select="titre" />
</xsl:if> </li>
<xsl:if test="@langue=‘ fr‘ ">
<li>Ce Livre est en français</li>
</xsl:if>
</xsl:for-each>
</ul>
30
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:choose>
L'élément <xsl: Choose> est utilisé conjointement avec <xsl: when> et <xsl:otherwise> pour définir une liste de choix
et affecter à chaque choix une transformation différente.
◼ Chaque choix/test est défini par un élément <xsl:when>
◼ et un traitement par défaut peut être spécifié grâce à l'élément <xsl:otherwise>.
Exemple d'utilisation
<ul>
<xsl:for-each select="livre">
<li>
<b><xsl:value-of select="auteur" /><br /></b>
<xsl:value-of select="titre" />
<xsl:choose>
<xsl:when test="@langue='fr’ ">Ce livre est en français.</xsl:when>
<xsl:when test="@langue=‘en’ "> Ce livre est en anglais. </xsl:when>
<xsl:otherwise> Ce livre est dans une langue non répertoriée. </xsl:otherwise>
</xsl:choose>
</li>
</xsl:for-each>
</ul> 31
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT
Eléments de XSLT
<xsl:variable>
L'élément <xsl:variable> sert à créer les variables dans XSLT. Il possède les attributs suivants :
◼ name : cet attribut est obligatoire. Il spécifie le nom de la variable.
◼ select : Optionnel. Définit la valeur de la variable.
Par exemple :
<xsl:template name="separateur">
<hr />
<img src="ligne.gif" alt="séparation” width="150" height="2" />
<hr />
</xsl:template>
Il suffit alors de l'appeler avec
<xsl:call-template name="separateur"/>
33
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSLT <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
<cd>
Exemple d’application 1: <title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
Proposer une feuille de style xsl pour le document XML cdcatalog.xml <company>Columbia</company>
<price>10.90</price>
permettant d’obtenir les résultats ci-dessous: <year>1985</year>
</cd>
<cd>
cdcatalog.xml
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
Résultats à afficher: <year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
34
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
XSLT xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
Correction: <body>
<center>
<h2>My CD Collection</h2>
la feuille de style XSL cdcatalog.xsl proposée: <table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
<th>Année de publication</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
<td><xsl:value-of select="year"/></td>
</tr>
</xsl:for-each>
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet> 35
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
<?xml version="1.0" encoding="UTF-8"?>
<galeries xs:noNamespaceSchemaLocation="test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
XSLT
<xsl:template match="/">
<html>
<body>
Correction: <h2>My galeries</h2>
<table border="1">
<xsl:for-each select="galeries/galerie">
<tr bgcolor="#21610B">
<th>gerant de la galerie:<xsl:value-of select="@id"/></th>
<th>Adresse :</th></tr>
<tr>
<td><xsl:value-of select="gerant"/></td>
<td><xsl:value-of select="@adresse"/></td>
</tr>
<tr bgcolor="#9acd32">
<th>Titre</th><th>Auteur</th>
</tr>
<xsl:for-each select="contenu">
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="auteur"/></td>
</tr>
</xsl:for-each>
<tr bgcolor="#3333333"><td colspan="3"></td></tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet> 37
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida
XSL(T)-XPATH
1. XQuery + JSON
2. XQuery + Relax NG
38
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. webProg.
Avancée SMI S6–/ SMI
web –Avancée F.S ElS6Jadida
/ F.S El Jadida