6 XSLT

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 48

eXtensible Stylesheet Language

Transformation

Ahmed ZELLOU
[email protected]
ISI, ISRT & ISEM SupMTI, 2021-2022.
XSLT
XSL

n XSL (Extensible Stylesheet Language) est un langage de feuille


de style pour XML.
n Il décrit comment un document XML sera affiché sur un
dispositif.
n Utilisé essentiellement pour transformer des documents XML
en d'autres formats, comme XHTML.
n XSL se compose de trois parties:
n XSLT : permet de transformer un document XML en
d'autres formats, comme XHTML.
n Xpath : permet de naviguer dans un document XML.
n XSL-FO (formatting objects) : permet de formater un
document XML en PDF.
2
@ A.ZELLOU, Technologie XML
XSLT
Introduction

n XSLT est un langage pour transformer des documents XML en


XHTML ou en d'autres documents XML.
n Signifie XSL transformation
n Le standard le plus important de XSL

n Utilise XPath pour naviguer dans des documents XML


n Recommandation W3C.
n Trois versions : 1.0 (1999), 2.0 (2007) est 3.0 depuis
2011.

n XSLT transforms an XML source-tree into an XML result-tree.

3
@ A.ZELLOU, Technologie XML
XSLT
Introduction

n Xpath est Utilisé pour naviguer à travers les éléments et les


attributs des documents XML.

n XSLT Permet de :
n Ajouter/supprimer des éléments et des attributs du fichier
résultant.
n Réorganiser les éléments dans le fichier résultant.
n Effectuer des tests sur le fichier source
n Boucler sur les éléments et les attributs
n Trier les éléments dans le fichier résultant.
n Créer des nouveaux éléments, attributs, variables,
commentaires,…

4
@ A.ZELLOU, Technologie XML
XSLT
Transformation XSLT

n Espace de noms
n xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Prenons un document XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<Biblio>
<Livre num="L1">
<titre>Le monde des Web Services</titre>
<auteur>Ahmed ZELLOU</auteur>
<pays>Maroc</pays>
<editeur>Eyrolles</editeur>
<prix>120.00</prix>
<annee>2011</annee>
</Livre>
..
</Biblio>
5
@ A.ZELLOU, Technologie XML
XSLT
Transformation XSLT

n Liaison avec le fichier XML :


n Intégrer la référence XSL à votre document XML
("docCatalog.xml") et afficher le résultat via un navigateur

<?xml version="1.0" encoding="ISO-8859-1"?>


<?xml-stylesheet type="text/xsl" href="docCatalog.xsl"?>
<Biblio>
<Livre num="L1">
<titre>Le monde des Web Services</titre>
<auteur>Ahmed ZELLOU</auteur>
<pays>Maroc</pays>
<editeur>Eyrolles</editeur>
<prix>120.00</prix>
<annee>2011</annee>
</Livre>
..
6
</Biblio> @ A.ZELLOU, Technologie XML
XSLT
Navigateurs XSLT

n La plupart des navigateurs supportent XSLT.


n Firefox à partir de la version 3.

n Internet Explorer à partir de la version 6.

n Google Chrome à partir de la version 1.

n Opera à partir de la version 9.

n Apple Safari à partir de la version 3.

7
@ A.ZELLOU, Technologie XML
XSLT
Transformation XSLT

n Pour transformer un fichier XML en XHTML via XSLT :

n Déclaration d'une feuille de style


n L'élément racine d'un document XSL est <xsl:stylesheet>
ou <xsl:transform>.
n Note: <xsl:stylesheet> et <xsl:transform> sont
complètement synonymes.

n Pour déclarer une feuille de style XSL conformément à la


recommandation W3C XSLT:
n <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
n Ou:
n <xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
8
@ A.ZELLOU, Technologie XML
XSLT
Transformation XSLT

n Une feuille de style XSL se compose d'un ou de plusieurs règles


nommées templates (Modèles).
n L'élément <xsl:template> est utilisé pour construire un modèle
d’affichage.
n Le template contient des règles qui s'appliquent quand un nœud
spécifique est trouvé.
n L'attribut match est utilisé pour associer le modèle à un élément
XML.
n Cet attribut peut aussi être utilisé pour définir un modèle pour
l'ensemble du document XML (match = "/").

9
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:template>

n Prenons une version simplifiée du fichier XSL :


<?xml version="1.0" encoding="ISO-8859-1"?> Une feuille de style XSL
<xsl:stylesheet version="1.0" est un document XML, il
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> commence toujours par
le prologue
<xsl:template match="/">
<html> <xsl:stylesheet> indique
<body> que ce document est une
feuille de style XSLT.
<h2>Ma Collection de Livres </h2>
<table border="1"> <xsl:template> définit un modèle,
<tr bgcolor="#9acd32"> l'attribut match = "/" associe le
<th>Titre</th> modèle avec la racine du
<th>Auteur</th> document XML source.
</tr>
<tr>
<td>.</td> Le contenu à l'intérieur de l'élément
<td>.</td> <xsl:template> définit des balises
</tr> HTML pour le document résultant.
</table>
</body>
</html> Définissent la fin du modèle et la
</xsl:template> fin de la feuille de style. 10
</xsl:stylesheet> @ A.ZELLOU, Technologie XML
XSLT
<xsl:value-of >

n Entrée
<note>enseigne <mat>XML</mat></note>
n Script
<xsl:template match="note">
<xsl:value-of select="."/>
</xsl:template>
n Arbre de Sortie
enseigne XML

11
@ A.ZELLOU, Technologie XML
XSLT
L'élément text()

n Entrée
<note>enseigne <mat>XML</mat></note>

n Script
<xsl:template match="note">
<xsl:value-of select="text()"/>
</xsl:template>

n Arbre de Sortie
enseigne

n Seul le premier élément sélectionné est produit


12
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:value-of>

n Utilisé pour extraire la valeur d'un nœud :


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32"> La valeur de l'attribut select est une
<th>Titre</th> expression XPath.
<th>Auteur</th>
</tr>
<tr>
<td><xsl:value-of select="Biblio/Livre/titre"/></td>
<td><xsl:value-of select="Biblio/Livre/auteur"/></td>
</tr>
</table>
Une expression XPath fonctionne comme
</body> </html> une navigation dans un système de fichiers,
</xsl:template> où une barre oblique (/) sélectionne les
</xsl:stylesheet> sous-répertoires.
13
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:text>

n XSL ne supporte pas les caractères d’espacement:


n Seulement cinq entités prédéfinies, et non

&nbsp;
n Permet d’injecter des espaces, des tabulations ou

des fins de ligne dans le document de sortie


n Permet aussi d’injecter des textes libres dans une

sortie

<xsl:text disable-output-escaping="yes"> </xsl:text>

14
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:for-each>

n Utilisé pour boucler sur les éléments XML d'un ensemble de


nœuds.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titre</th> <th>Auteur</th>
</tr>
<xsl:for-each select="Biblio/Livre">
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="auteur"/></td>
</tr>
</xsl:for-each>
</table> </body> </html>
</xsl:template> </xsl:stylesheet>
15
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:sort>

n Utilisé pour trier le résultat à l'intérieur de l'élément <xsl:for-


each>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titre</th> <th>Auteur</th>
</tr>
<xsl:for-each select="Biblio/Livre">
<xsl:sort select="auteur"/>
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="auteur"/></td>
</tr>
</xsl:for-each>
</table></body> </html>
16
</xsl:template> @ A.ZELLOU, Technologie XML
</xsl:stylesheet>
XSLT
L'élément <xsl:sort>

n Quelques attributs de <xsl:sort> :

n order : le sens du tri (ascending ou descending)

n lang : la langue du critère de tri

n data-type : la nature de la clé de tri (text, number)

n case-ordre (upper-first, lower-first)

17
@ A.ZELLOU, Technologie XML
XSLT
Les tests

n Filtrer le résultat
n Pour filtrer le résultat, on ajoute un critère pour

sélectionner l'attribut dans l'élément <xsl:for-each>.

n Exemple :
n <xsl:for-each select="Biblio/Livre[auteur='Bob Sam']">

n Les opérateurs de filtrage autorisées sont:


n = (égal)

n ! = (Différent)

n &lt; inférieur à

n &gt; supérieur à

18
@ A.ZELLOU, Technologie XML
XSLT
Les tests

n Filtrer le résultat : Exemple


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titre</th> <th>Auteur</th>
</tr>
<xsl:for-each select="Biblio/Livre[auteur='Bob Swart']"> <tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="auteur"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
19
</xsl:stylesheet>
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:if>

n Utilisée pour mettre un test conditionnel sur le contenu du


fichier XML.

n Syntaxe
<xsl:if test="expression">
... résultat si le test est vrai ...
</xsl:if>

n Où le mettre ?
n A l'intérieur de l'élément <xsl:for-each> dans le fichier

XSL.
20
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:if>

n La valeur de l'attribut test contient l'expression à évaluer.


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titre</th> <th>Auteur</th>
</tr>
<xsl:for-each select="Biblio/Livre">
<xsl:if test="prix &gt; 10">
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="auteur"/></td>
</tr> L’exemple affiche le titre et
</xsl:if> l'auteur des livres qui ont un
</xsl:for-each> prix supérieur à 10.
</table></body> </html>
21
</xsl:template>
@ A.ZELLOU, Technologie XML
</xsl:stylesheet>
XSLT
L'élément <xsl:if>

Exemple
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titre</th> <th>Auteur</th> Cet exemple ajoute un fond rose à la
</tr> colonne "Auteur" lorsque le prix du livre est
<xsl:for-each select="Biblio/Livres"> supérieur à 10.
<tr>
<td><xsl:value-of select="titre"/></td>
<xsl:if test="prix &gt; 10">
<td bgcolor="#ff00ff"><xsl:value-of select="auteur"/></td>
</xsl:if>
<xsl:if test="prix &le; 10">
<td bgcolor="#00ff00"><xsl:value-of select="auteur"/></td>
</xsl:if>
</tr>
</xsl:for-each>
22
</table> </body> </html>
@ A.ZELLOU, Technologie XML
</xsl:template> </xsl:stylesheet>
XSLT
L'élément <xsl:choose>

n Utilisé en conjonction avec <xsl:when> et <xsl:otherwise> pour


exprimer des tests conditionnels multiples.

n Syntaxe
<xsl:choose>
<xsl:when test="expression">
... Éléments de sortie ...
</xsl:when>
<xsl:otherwise>
... Éléments de sortie ....
</xsl:otherwise>
</xsl:choose>

23
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:choose>

n Exemple avec when et otherwise :


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body>
<h2>Ma Collection de Livres </h2>
<table border="1">
<tr bgcolor="#9acd32">
L’exemple ajoute un fond rose à la colonne
<th>Titre</th> <th>Artiste</th> </tr> "Auteur" lorsque le prix du livre est
<xsl:for-each select="Biblio/Livres"> supérieure à 10, et un fond gris lorsque le
<tr> prix du livre est supérieur à 9 et inférieur ou
<td><xsl:value-of select="titre"/></td> égal à 10.
<xsl:choose>
<xsl:when test="prix &gt; 10">
<td bgcolor="#ff00ff"> <xsl:value-of select="auteur"/></td>
</xsl:when>
<xsl:when test="prix &gt; 9">
<td bgcolor="#0000ff"> <xsl:value-of select="auteur"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artiste"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
</table> </body> </html> 24
</xsl:template></xsl:stylesheet>
@ A.ZELLOU, Technologie XML
XSLT
Types de Sortie
n Trois types de document en sortie :
n xml : sortie par défaut
<xsl:output method="xml">

n html :
<xsl:output method="html">

n text : du code natif, RTF, LaTex


<xsl:output method="text">

n Par défaut, xml, sauf si la première balise de l'arbre résultat est


html.

25
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:element>
n Permet créer un élément (Transformation)

<xsl:output method="xml" indent="yes"/>

<xsl:template match="chemin">
<xsl:element name="nom">
<xsl:value-of select="valeur"/>
</xsl:element>
</xsl:template>

26
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:attribute>
n Permet de créer un attribut
<xsl:output method="xml" indent="yes"/>

<xsl:template match="chemin">
<xsl:element name="nom">
<xsl:value-of select="valeur"/>
<xsl:attribute name="nom">
<xsl:value-of select="valeur"/>
</xsl:attribute>
</xsl:element>
</xsl:template>

27
@ A.ZELLOU, Technologie XML
XSLT
L'élément { }
n Entrée
<a href="fic.txt"/>
n Script
<xsl:template match="a">
<b id="{@href}"/>
</xsl:template>
n Arbre de Sortie
<b id="fic.txt"/>

n Autre script
<xsl:template match="a">
<b><xsl:attribut name="id">
<xsl:value-of select="@href"/>
</xsl:attribut></b> 28
</xsl:template> @ A.ZELLOU, Technologie XML
XSLT
L'élément name()

n Entrée
<note>enseigne
<mat>XML</mat>
</note>

n Script
<xsl:template match=".">
<xsl:value-of select="name()"/>
</xsl:template>

n Arbre de Sortie
note
29
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:variable>

n Déclaration de variable 1
<xsl:variable name="backcolor" select="'#FFFFCC'" />

n Déclaration de variable 2
<xsl:variable
name="backcolor">#FFFFCC</xsl:variable>

n Référence à une variable


<BODY BGCOLOR='{$backcolor}'>

n N.B. Une variable ne peut être réaffectée (des


constantes)
30
@ A.ZELLOU, Technologie XML
XSLT
Passage de paramètres
n Déclaration (paramètre formel)
<xsl:template match=".">
<xsl:param name="p" select="0"/>
... utilisation de p ...
</xsl:template>

n Obtenir la valeur d’un paramètre


select="$p"

n Appel (paramètre effectif)


<xsl:apply-templates>
<xsl:with-param name="p" select="$p+1"/>
</xsl:apply-templates>

31
@ A.ZELLOU, Technologie XML
XSLT
Passage de paramètres

n Les paramètres descendants directs d’un élément


<xsl:stylesheet> sont autorisés

<xsl:stylesheet>
<xsl:param name="dir" select="'mondir'"/>
...
</xsl:stylesheet>

n Equivalent à

dir='monDir'

32
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:number>

n Pour numéroter des nœuds d'un document en fonction


de leur position dans l'arbre source :

n level : pour préciser le niveau dans l'arbre


n from : point de départ de la numérotation

n format : format d'affichage de la numérotation

33
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:message>

n Déclaration
<xsl:message>
code = <xsl:value-of select="$code"/>
</xsl:message>

n La Sortie

code = 25

34
@ A.ZELLOU, Technologie XML
XSLT
L'élément <xsl:copy-of>
n Crée une copie d’un noeud
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="header">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">Artist</th>
</tr>
</xsl:variable>
<xsl:template match="/">
<html>
<body>
<h2>Ma Collection de livres</h2>
<table border="1">
<xsl:copy-of select="$header"/>
<xsl:for-each select="Biblio/Livre/titre">

35
@ A.ZELLOU, Technologie XML
XSLT
<xsl:comment> & <xsl:import>
n Pour sortir les commentaires
<xsl:template match="comment()">
<xsl:comment>
<xsl:value-of select="."/>
</xsl:comment>
</xsl:template>

n Modularité des feuilles de style


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0"
encoding="ISO-8859-1" indent="yes"/>
<xsl:import href="feuille1.xsl"/>
...
</xsl:stylesheet> 36
@ A.ZELLOU, Technologie XML
XSLT
Divers

n Modulariser sa stylesheet
n <xsl:include>
n Inclut textuellement la stylesheet référencée.
n <xsl:include href = "uri-reference" />
n Même niveau de précédence : les templates se
comportent comme ceux de la stylesheet.

n Gérer les espaces


n <xsl:strip-space>
n ne préserve pas les espaces dans les éléments
n <xsl:preserve-space>
n préserve les espaces dans les éléments

37
@ A.ZELLOU, Technologie XML
XSLT
Divers

n <xsl:key>
n permet d'associer un identifiant à un nœud

n <xsl:decimal-format>
n permet de définir un modèle de représentation des
nombres décimaux (utile si internationalisation)

n <xsl:attribute-set>
n déclare un ensemble d'attributs réutilisables

38
@ A.ZELLOU, Technologie XML
XSLT
Les Templates

n Deux styles de programmation

n Itérative via l’attribut select


<xsl:for-each>

n Récursive
<xsl:apply-templates>

n Déclaration
<xsl:template name="...">
...
</xsl:template>
n Appel
<xsl:call-template> ou <xsl:apply-templates>
39
@ A.ZELLOU, Technologie XML
XSLT

L'élément <xsl:apply-templates>
n L'élément <xsl:apply-templates> applique un modèle.

n L'attribut select <xsl:apply-templates>, précise à qui s’applique


le modèle.

n Nous pouvons utiliser l'attribut select pour spécifier l'ordre dans


lequel les nœuds fils seront traités.

40
A.ZELLOU
XSLT
Les Templates
n Exemple

<xsl:template name="navbar">
<a href="index.htm">Home</a> |
<a href="help.htm">Help</a> |
<a href="toc.htm">Contents</a>
</xsl:template>

<xsl:template match="mainblock">
<body>
<xsl:call-template name="navbar"/>
<xsl:apply-templates/>
<xsl:call-template name="navbar"/>
</body>
</xsl:template>
41
@ A.ZELLOU, Technologie XML
XSLT

L'élément <xsl:apply-templates>
n Prenons l'exemple suivant:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" Ce qui donne comme résultat
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Ma Collection de Livres </h2>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="catalogue/cd">
<p>
<xsl:apply-templates select="titre"/>
<xsl:apply-templates select="artiste"/>
</p>
</xsl:template>
<xsl:template match="titre">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
<xsl:template match="artiste">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/></span>
42
<br />
</xsl:template></xsl:stylesheet> A.ZELLOU
XSLT

XSLT - référence
Élément Description IE FF
apply-imports Applique une règle modèle à partir d'une feuille de style importé 6.0 1.0
apply-templates Applique une règle modèle à l'élément courant ou au nœud fils de 5.0 1.0
l'élément courant
attribute Ajoute un attribut 5.0 1.0
attribute-set Définit un ensemble nommé d'attributs 6.0 1.0
call-template Appelle un modèle nommé 6.0 1.0
choose Utilisé en conjonction avec <when> et <otherwise> pour exprimer 5.0 1.0
des tests conditionnels multiples
comment Crée un nœud de commentaire dans l'arbre résultat 5.0 1.0
copy Crée une copie du noeud courant (sans nœud fils et sans attributs) 5.0 1.0
copy-of Crée une copie du noeud courant (avec nœud fils et attributs) 6.0 1.0
decimal-format Définit les caractères et les symboles à utiliser pour convertir les 6.0 1.0
nombres en chaînes de caractères avec la fonction format-number()
element Crée un nœud d'élément dans le document résultant 5.0 1.0
fallback Spécifie un code alternatif à exécuter si le processeur ne supporte pas 6.0
un élément XSLT 43
A.ZELLOU
XSLT

XSLT - référence
Élément Description IE FF
for-each Boucle sur chaque noeud dans un ensemble de noeud spécifié 5.0 1.0
if Contient un modèle qui sera appliqué si une condition spécifiée est 5.0 1.0
vraie
import Importe le contenu d'une feuille de style dans une autre. Remarque: 6.0 1.0
Une feuille de style importée est moins prioritaire que la feuille de
style principale
include Inclut le contenu d'une feuille de style dans une autre. Remarque: Une 6.0 1.0
feuille de style incluse à la même priorité que la feuille de style
principale
key Déclare une clef nommée qui peut être utilisé dans la feuille de style 6.0 1.0
avec la fonction key ()
message Écrit un message à la sortie (utilisé pour signaler les erreurs) 6.0 1.0
namespace-alias Remplace un espace de noms dans la feuille de style par un autre 6.0
espace de noms dans le résultat
number Détermine la position du noeud courant (retourne un nombre) 6.0 1.0
otherwise Indique une action par défaut pour l'élément <choose> 5.0 1.0
44
output Définit le format du document de résultat 6.0 1.0
A.ZELLOU
XSLT

XSLT - référence
Élément Description IE FF
param Déclare un paramètre 6.0 1.0
preserve-space Définit les éléments pour lesquels les espaces doivent être préservées 6.0 1.0
processing- Écrit une instruction de traitement 5.0 1.0
instruction
sort Trie 6.0 1.0
strip-space Définit les éléments pour lesquels les espaces blancs doivent être 6.0 1.0
supprimés
stylesheet Définit l'élément racine de la feuille de style 5.0 1.0
template Règles à appliquer quand un noeud spécifié est trouvé 5.0 1.0
text Ecrit un texte littéral 5.0 1.0
transform Définit l'élément racine de la feuille de style 6.0 1.0
value-of Extrait la valeur d'un nœud sélectionné 5.0 1.0
variable Déclare une variable 6.0 1.0
when Spécifie une action pour l'élément <choose> 5.0 1.0
45
with-param Définit la valeur d'un paramètre à passer à un modèle 6.0 1.0
A.ZELLOU
XSLT

Quelques fonctions XSLT

Nom Description
current() Retourne le noeud courant
document() Utilisé pour accéder aux nœuds dans un document XML externe
element- Teste si un élément est supporté par le processeur XSLT
available()
format-number() Convertit un nombre en chaîne de caractères
function- Teste si une fonction est supportée par le processeur XSLT
available()
generate-id() Retourne une chaîne de caractères qui identifie de manière unique un
noeud spécifié
key() Retourne un ensemble de nœuds on utilisant l'index spécifié par un élément
<xsl:key>
system-property() Retourne les propriétés du système
unparsed-entity- Retourne l'URI d'une entité non analysée
uri() 46
A.ZELLOU
XSLT

Conclusion
n XSLT est un langage pour transformer des documents XML en
XHTML ou en d'autres documents XML.
n Le standard le plus important de XSL
n Utilise XPath pour naviguer dans des documents XML
n Permet d’afficher, masquer, réorganiser, trier, effectuer des tests
sur les éléments et des attributs du fichier résultant.
n XSLT est un vrai langage de programmation
n XSLT n’a pas son équivalent pour la transformation d’arbre
n Mais, la mise au point de programmes XSLT peut s’avérer
« délicate »

47
A.ZELLOU
Merci

Vous aimerez peut-être aussi