Vous êtes sur la page 1sur 40

La spécification des chemins avec XPath

XSLT avancé
L3Pro BDISE – XML

Mathieu Sassolas

IUT de Sénart Fontainebleau


Département Informatique

Année 2016-2017
Cours 4
Plan de la séance

XPath &
XSLT avancé

M. Sassolas
L3Pro
1 La spécification des chemins avec XPath
Cours 4 Principe général
XPath
Les axes
XSLT avancé Les filtres
Les expressions pour les tests et prédicats
Mise en application

2 Quelques fonctionalités avancées de XSLT


Tri
Variables et paramètres
Petites astuces
Mise en application

2 / 26
But de XPath

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath I Spécification des nœuds sélectionnés pour appliquer des


Principe
Axes templates ou récupérer une valeur lors des select (ou des
Filtres
Expressions match dans la définition des templates).
Mise en application

XSLT avancé
I Langage pour les conditions des test (xsl:when,
xsl:if. . .).

3 / 26
But de XPath

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath I Spécification des nœuds sélectionnés pour appliquer des


Principe
Axes templates ou récupérer une valeur lors des select (ou des
Filtres
Expressions match dans la définition des templates).
Mise en application

XSLT avancé
I Langage pour les conditions des test (xsl:when,
xsl:if. . .).
,→ Parcours dans l’arbre avec des tests sur le chemin.

3 / 26
Principe de base

XPath &
XSLT avancé

M. Sassolas
L3Pro
I Un chemin est une suite d’étapes :
Cours 4

XPath
Syntaxe d’un chemin
Principe
Axes
[/]etape1/etape2/.../etapeN
Filtres
Expressions I Dans chaque étape, on navigue dans l’arbre selon des
Mise en application
axes : père, fils, frère. . .
XSLT avancé
I On peut également filtrer selon le type de nœud.
I On peut enfin demander que des prédicats soient vérifiés.

Syntaxe d’une étape


axe::filtre[predicat1][predicat2]...

4 / 26
Les axes
Partie I

XPath &
XSLT avancé

M. Sassolas
L3Pro
C’est juste de l’anglais !
Cours 4
self Le nœud courant.
XPath
Principe
attribute Les attributs du nœud courant.
Axes
Filtres child Les fils.
Expressions
Mise en application descendant Les descendants (fils, petit-fils,. . .).
XSLT avancé
descendant-or-self Les descendants ou le nœud courant.
parent Le père.
ancestor Les ancêtres (père, grand-père,. . .) ; en particulier
la racine est toujours un tel nœud.
ancestor-or-self Les ancêtres ou le nœud courant.

5 / 26
Les axes
Partie II

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4
following-sibling Les frères suivants.
XPath
Principe
preceding-sibling Les frères précédents.
Axes
Filtres following Les nœuds suivants, frères ou non (suivant dans
Expressions
Mise en application la lecture XML).
XSLT avancé
preceding Les nœuds précédents, frères ou non (précédant
dans la lecture XML).
namespace Les nœuds ayant le même espace de nom que le
nœud courant.

6 / 26
Les types de nœuds

XPath &
XSLT avancé

M. Sassolas
L3Pro
Pour XPath, tout est un nœud (node), mais il y en a plusieurs
Cours 4 types : attributs, éléments, texte, commentaire
XPath (principalement).
Principe
Axes I Tous les nœuds : node().
Filtres
Expressions
Mise en application
I Tous les types d’attributs : * (lorsque l’on navigue dans
XSLT avancé l’axe attribut)
I Tous les types d’éléments : * (sinon)
I Un type d’élément particulier : MonElement.
I Les nœuds de type texte : text().
I Les nœuds de type commentaire : comment().

7 / 26
Exemples

XPath &
XSLT avancé

M. Sassolas
L3Pro
child::monElement Tous les fils de type monElement
Cours 4
(équivalent abrégé : monElement).
XPath
Principe parent::node()/attribute::* Tous les attributs du nœud
Axes
Filtres père (équivalent abrégé : ../@*).
Expressions
Mise en application descendant-or-self::comment() Tous les commentaires se
XSLT avancé
trouvant dans les descendants au sens large
(équivalent abrégé : //comment()).
descendant::text() Tous le texte (càd #PCDATA) dans les
descendants stricts (équivalent abrégé :
*//text()).

8 / 26
Les expressions
Partie I

XPath &
XSLT avancé
,→ Servent dans les test="... " et dans les prédicats :
M. Sassolas
axe::filtre[prédicat].
L3Pro
elt Présence d’un élément fils de type elt (peut être
Cours 4
un chemin XPath plus complexe. . .).
XPath
Principe
@attribut Présence d’un attribut de type attribut.
Axes
Filtres @attribut = ’texte’ Teste si la valeur de l’attribut
Expressions
Mise en application
attribut est égale à au texte texte.
XSLT avancé @attribut != ’texte’ Teste si la valeur de l’attribut
attribut est différente du texte texte.
@attribut <op> valeur où <op> ∈ {&lt;, &lt;=, &gt;,
&gt;=, =, !=} et valeur est un entier.

Remarque
On peut tester également la valeur d’un élément, mais ça ne
9 / 26 prend pas que la partie texte : il faut utiliser element/texte().
Les expressions
Partie II

XPath &
XSLT avancé On peut manipuler un peu plus les valeurs d’attribut (et
M. Sassolas d’éléments) via des fonctions.
L3Pro

Cours 4 I Opérations arithmétiques (valeurs numériques) : +, -, *,


XPath div (division flottante), mod (reste de la division
Principe
Axes
euclidienne).
Filtres
Expressions I Opérations bouléennes : and, or, not(...).
Mise en application

XSLT avancé
I Opérations de traduction : translate(texte,
caractère_à_remplacer,remplacer_par)
,→ Le remplacement fonctionne caractère par caractère et
est sensible à la casse !
Exemple
translate(’Abracadabra’,’ba’,’zo’) Azrocodozro
translate(’Abracadabra’,’ba’,’z’) Azrcdzr
10 / 26
Les expressions
Partie III

XPath &
XSLT avancé
I Le nœud courant : current().
M. Sassolas Attention !
L3Pro

Cours 4 N’est pas relatif au chemin Xpath en cours d’évaluation !


XPath
Principe
Axes
Filtres
Expressions
Mise en application

XSLT avancé

11 / 26
Les expressions
Partie III

XPath &
XSLT avancé
I Le nœud courant : current().
M. Sassolas Attention
<xsl:templat !
e match= "pere">
L3Pro
Current:N’est
Cours 4
<xsl:v
pasalue-o
relatif au
f chemin Xpath en cours d’évaluation !
select
XPath
="fils [curre nt()/@ prefere = @code]/@nom"/>
Self ou équivalents:
Principe
Axes
self::node() <xsl:value-of
Filtres
Expressions
select="fils[self::node()/@prefere = @code]/@nom"/>
Mise en application

.avancé
XSLT <xsl:value-of select="fils[./@prefere = @code]/@nom"/>
&apos;rien&apos;
<xsl:value-of select="fils[@prefere = @code]/@nom"/>
</xsl:template>

11 / 26
<pere prefere="GG" code="PP">
Les expressions
code="DD" nom="Dédé" prefere="PP"/>
<fils
Partie III
<fils code="GG" nom="Gégé" prefere="DD"/>
<fils code="TT" nom="Toto" prefere="TT"/>
XPath &
XSLT avancé
I Le >nœud courant : current().
</pere
M. Sassolas Attention
<xsl:templat !
e match= "pere">
L3Pro
Current:N’est
Cours 4
<xsl:v
pasalue-o
relatif au
f chemin Xpath en cours d’évaluation !
select
XPath
="fils [curre nt()/@ prefere = @code]/@nom"/>
Self ou équivalents:
Principe
Axes
self::node() <xsl:value-of
Filtres
Expressions
select="fils[self::node()/@prefere = @code]/@nom"/>
Mise en application

.avancé
XSLT <xsl:value-of select="fils[./@prefere = @code]/@nom"/>
&apos;rien&apos;
<xsl:value-of select="fils[@prefere = @code]/@nom"/>
</xsl:template>

11 / 26
<pere prefere="GG" code="PP">
Les expressions
code="DD" nom="Dédé" prefere="PP"/>
<fils
Partie III
<fils code="GG" nom="Gégé" prefere="DD"/>
<fils code="TT" nom="Toto" prefere="TT"/>
XPath &
XSLT avancé
I Le >nœud courant : current().
</pere
M. Sassolas Attention
<xsl:templat !
e match= "pere">
L3Pro
Current:N’est
Cours 4
<xsl:v
pasalue-o
relatif au
f chemin Xpath en cours d’évaluation !
select
XPath
="fils [curre nt()/@ prefere = @code]/@nom"/>
Self ou équivalents:
Principe
Axes
self::node() <xsl:value-of
Filtres
Expressions
select="fils[self::node()/@prefere = @code]/@nom"/>
Mise en application

.avancé
XSLT <xsl:value-of select="fils[./@prefere = @code]/@nom"/>
&apos;rien&apos;
<xsl:value-of select="fils[@prefere = @code]/@nom"/>
</xsl:template>
Current: G&eacute;g&eacute;
Self ou &eacute;quivalents:
self::node() Toto
. Toto
11 / 26
’rien’ Toto
Les expressions
Partie III

XPath &
XSLT avancé
I Le nœud courant : current().
M. Sassolas Attention !
L3Pro

Cours 4 N’est pas relatif au chemin Xpath en cours d’évaluation !


XPath
Principe I Union d’un ensemble de nœuds : |, par exemple
Axes
Filtres
elt[fils1 | fils2]/petitfils.
Expressions
Mise en application

XSLT avancé

11 / 26
Les expressions
Partie III

XPath &
XSLT avancé
I Le nœud courant : current().
M. Sassolas Attention !
L3Pro

Cours 4 N’est pas relatif au chemin Xpath en cours d’évaluation !


XPath
Principe I Union d’un ensemble de nœuds : |, par exemple
Axes
Filtres
elt[fils1 | fils2]/petitfils.
Expressions
Mise en application
I Tests sur la position du nœud parmis ses frères :
XSLT avancé position() = last(), position() = 1, position()
mod 2 = 0.
Remarque
Attention, les nœuds de texte, de commentaires, etc sont aussi
comptés. À n’utiliser que dans un ensemble de nœud que l’on
connaı̂t : elt[position()=last()] choisit le dernier parmi
les éléments elt.
11 / 26
Quelques autres fonctions utiles

XPath &
XSLT avancé I Sur les chaı̂nes de caractères :
M. Sassolas
L3Pro contains(contenant,contenu) Si le contenant
Cours 4 contient le contenu. Sensible à la casse !
XPath concat(chaine1,chaine2,...) Concaténation de
Principe
Axes chaı̂nes.
Filtres
Expressions
substring(chaine,pos,longueur) Sous-chaı̂ne de
Mise en application
longueur long à partir de la position pos.
XSLT avancé
I Fonctions numériques :
count(chemin/Xpath) Compte le nombre de nœuds
désignés par le chemin XPath.
sum(chemin/Xpath) Fait la somme des valeurs des
nœuds désignés par le chemin XPath (n’a du
sens que si le contenu du chemin sont des
12 / 26
nombres).
Remarques

XPath &
XSLT avancé

M. Sassolas
I Il existe d’autres fonctions que celles présentées.
L3Pro

Cours 4 Attention
XPath On utilise XSLT 1.0, des fonctions trouvées dans des docs
Principe
Axes pourraient ne fonctionner que dans XSLT 2.0.
Filtres
Expressions
Mise en application

XSLT avancé

13 / 26
Remarques

XPath &
XSLT avancé

M. Sassolas
I Il existe d’autres fonctions que celles présentées.
L3Pro

Cours 4 Attention
XPath On utilise XSLT 1.0, des fonctions trouvées dans des docs
Principe
Axes pourraient ne fonctionner que dans XSLT 2.0.
Filtres
Expressions
Mise en application I Les prédicats s’évaluent dans le contexte local :
XSLT avancé pere/fils[@attr="42"] teste la valeur de l’attribut
attr du fils.
I Les enchaı̂nement de prédicats ne fonctionnent pas
exactement comme des conjonction : elt[pred1][pred2]
teste pred2 sur les nœuds désignés par elt[pred1]
Attention en particulier lors de tests avec position().

13 / 26
Remarques

XPath &
XSLT avancé

M. Sassolas
I Il existe d’autres fonctions que celles présentées.
Encha^ ınement:
L3Pro

Cours 4Attention
<xsl:value-o f
XPath select On utilise XSLT 1.0, des fonctions trouvées dans des docs
Principe
="viande[@gras = ’no’][position() = 1]/@id"/>
Axes [end] pourraient ne fonctionner que dans XSLT 2.0.
Filtres
Conjonction:
Expressions
I Les prédicats s’évaluent dans le contexte local :
Mise en application
<xsl:value-of
XSLT avancé pere/fils[@attr="42"] teste la valeur de l’attribut
select="viande[@gras = ’no’ and position() = 1]/@id"/>
attr du fils.
[end]
I Les enchaı̂nement de prédicats ne fonctionnent pas
exactement comme des conjonction : elt[pred1][pred2]
teste pred2 sur les nœuds désignés par elt[pred1]
Attention en particulier lors de tests avec position().

13 / 26
Remarques gras="yes" id="1"/>
<viande
<viande gras="no" id="2"/>
<viande gras="no" id="3"/>
XPath &
XSLT avancé <viande gras="yes" id="4"/>
M. Sassolas
I Il existe d’autres fonctions que celles présentées.
Encha^ ınement:
L3Pro

Cours 4Attention
<xsl:value-o f
XPath select On utilise XSLT 1.0, des fonctions trouvées dans des docs
Principe
="viande[@gras = ’no’][position() = 1]/@id"/>
Axes [end] pourraient ne fonctionner que dans XSLT 2.0.
Filtres
Conjonction:
Expressions
I Les prédicats s’évaluent dans le contexte local :
Mise en application
<xsl:value-of
XSLT avancé pere/fils[@attr="42"] teste la valeur de l’attribut
select="viande[@gras = ’no’ and position() = 1]/@id"/>
attr du fils.
[end]
I Les enchaı̂nement de prédicats ne fonctionnent pas
exactement Encha&icirc;nement:
comme des conjonction : elt[pred1][pred2]
2 [end]
teste pred2 sur les nœuds désignés par elt[pred1]
Conjonction:
Attention en particulier lors de tests avec position().
[end]
13 / 26
Fin du cours sur XPath

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath

ë C’est l’heure du TD sur XPath ê


Principe
Axes
Filtres
Expressions
Mise en application

XSLT avancé

14 / 26
XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath
Principe
Axes
Filtres
Expressions
Mise en application

XSLT avancé

15 / 26
Tri des éléments

XPath &
XSLT avancé

M. Sassolas
Syntaxe (abrégée)
L3Pro
<xsl:sort select="champ_pour_trier"
Cours 4
[order="ascending|descending"]
XPath
[data-type="text|number"]/>
XSLT avancé
Tri
Variables et
paramètres
Petites astuces
I Au sein d’une boucle for-each ou d’un
Mise en application apply-templates.
I Le champ pour trier est un chemin XPath relatif aux
nœuds sélectionnés par le for-each ou
l’apply-templates.
I On peut les enchaı̂ner : on trie d’abord selon le premier
critère puis selon le second en cas d’égalité, etc.

16 / 26
Tri des éléments

XPath &
XSLT avancé

M. Sassolas
Syntaxe (abrégée)
L3Pro
<xsl:a pply-tselect="champ_pour_trier"
<xsl:sort emplates>
Cours 4
<xsl:sort select="@gra [order="ascending|descending"]
s"/>
XPath
<xsl:sort select="@note"[data-type="text|number"]/>
data-type="number"/>
XSLT avancé
Tri
</xsl:apply-templates>
Variables et
paramètres . . . I Au sein d’une boucle for-each ou d’un
Petites astuces
Mise en application
<xsl:tapply-templates.
emplate match="viande">
<xsl:value-of select="@id"/>;
I Le champ pour trier est un chemin XPath relatif aux
</xsl:template>
nœuds sélectionnés par le for-each ou
l’apply-templates.
I On peut les enchaı̂ner : on trie d’abord selon le premier
critère puis selon le second en cas d’égalité, etc.

16 / 26
e gras="yes" id="1" note="C"/>
Tri<viand
des éléments
<viande gras="no" id="2" note="B"/>
<viande gras="no" id="3" note="A"/>
XPath & <viande gras="yes" id="4" note="B"/>
XSLT avancé

M. Sassolas
Syntaxe gras="maybe" id="5" note="A"/>
<viande(abrégée)
L3Pro
<xsl:a pply-tselect="champ_pour_trier"
<xsl:sort emplates>
Cours 4
<xsl:sort select="@gra [order="ascending|descending"]
s"/>
XPath
<xsl:sort select="@note"[data-type="text|number"]/>
data-type="number"/>
XSLT avancé
Tri
</xsl:apply-templates>
Variables et
paramètres . . . I Au sein d’une boucle for-each ou d’un
Petites astuces
Mise en application
<xsl:tapply-templates.
emplate match="viande">
<xsl:value-of select="@id"/>;
I Le champ pour trier est un chemin XPath relatif aux
</xsl:template>
nœuds sélectionnés par le for-each ou
l’apply-templates.
I On peut les enchaı̂ner : on trie d’abord selon le premier
critère puis selon le second en cas d’égalité, etc.

16 / 26
e gras="yes" id="1" note="C"/>
Tri<viand
des éléments
<viande gras="no" id="2" note="B"/>
<viande gras="no" id="3" note="A"/>
XPath & <viande gras="yes" id="4" note="B"/>
XSLT avancé

M. Sassolas
Syntaxe gras="maybe" id="5" note="A"/>
<viande(abrégée)
L3Pro
<xsl:a pply-tselect="champ_pour_trier"
<xsl:sort emplates>
Cours 4
<xsl:sort select="@gra [order="ascending|descending"]
s"/>
XPath
<xsl:sort select="@note"[data-type="text|number"]/>
data-type="number"/>
XSLT avancé
Tri
</xsl:apply-templates>
Variables et
paramètres . . . I Au sein d’une boucle for-each ou d’un
Petites astuces
Mise en application
<xsl:tapply-templates.
emplate match="viande">
<xsl:value-of select="@id"/>;
I Le champ pour trier est un chemin XPath relatif aux
</xsl:template>
nœuds sélectionnés5;par le for-each ou
l’apply-templates. 3;
I On peut les enchaı̂ner
2; : on trie d’abord selon le premier
critère puis selon 4;
le second en cas d’égalité, etc.
1;
16 / 26
Utilisation de variables
Version simple

XPath &
XSLT avancé
Syntaxe
M. Sassolas <xsl:variable name="nomVariable">
L3Pro

Cours 4
Du contenu <tag>potentiellement</tag> XML
</xsl:variable>
XPath

XSLT avancé
...
Tri <xsl:value-of select="$nomVariable"/>
Variables et
paramètres
Petites astuces
<xsl:copy-of select="$nomVariable"/>
Mise en application

,→ On ne peut pas réaffecter ni redéfinir une variable.


I value-of prend la valeur textuelle de la variable.
I copy-of prend la valeur tout le contenu de la variable, y
compris le XML.

17 / 26
Utilisation de variables
Version simple

XPath &
XSLT avancé
Syntaxe
M. Sassolas <xsl:variable name="nomVariable">
L3Pro

Cours 4
Du contenu <tag>potentiellement</tag> XML
</xsl:variable>
XPath

XSLT avancé
...
Tri <xsl:value-of select="$nomVariable"/>
Variables et
paramètres
Petites astuces
<xsl:copy-of select="$nomVariable"/>
Mise en application

,→ On ne peut pas réaffecter ni redéfinir une variable.


I value-of prend la valeur textuelle de la variable.
I copy-of prend la valeur tout le contenu de la variable, y
Ducompris
contenleu XML.
potentiellement XML
Du contenu <tag>potentiellement</tag> XML

17 / 26
Utilisation de variables
Version simple

XPath &
XSLT avancé
Syntaxe
M. Sassolas <xsl:variable name="nomVariable">
L3Pro

Cours 4
Du contenu <tag>potentiellement</tag> XML
</xsl:variable>
XPath

XSLT avancé
...
Tri <xsl:value-of select="$nomVariable"/>
Variables et
paramètres
Petites astuces
<xsl:copy-of select="$nomVariable"/>
Mise en application

,→ On ne peut pas réaffecter ni redéfinir une variable.


I value-of prend la valeur textuelle de la variable.
I copy-of prend la valeur tout le contenu de la variable, y
compris le XML.

La portée de la variable est tout son parent xsl:..., après sa


déclaration. Cela comprend donc les descendants de ses frères.
17 / 26
Utilisation de variables
Version avancée

XPath &
XSLT avancé
,→ Le contenu des variables peut aussi provenir du document
M. Sassolas
L3Pro via XSLT.
Cours 4
Exemple
XPath

XSLT avancé
<xsl:variable name="sexe">
Tri <xsl:choose>
Variables et
paramètres <xsl:when test="@genre = ’M’">
Petites astuces
Mise en application C’est un homme</xsl:when>
<xsl:when test="@genre = ’F’">
C’est une femme</xsl:when>
<xsl:otherwise>On ne sait pas:
"<xsl:value-of select="@genre"/>"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
18 / 26
Utilisation de paramètres

XPath &
XSLT avancé I Les variables sont locales, elles ne peuvent être passées en
M. Sassolas paramètre dans d’autres templates.
L3Pro

Cours 4
I Les paramètres, au contraire, sont faits pour ça.
XPath

XSLT avancé
Syntaxe
Tri
Variables et
<xsl:template name="nomTemplate">
paramètres
Petites astuces
<xsl:param name="nomParametre"
Mise en application
select="’valeurParDefaut’"/>
...
</xsl:template>
...
<xsl:call-template name="nomTemplate">
<xsl:with-param name="nomParametre"
select="valeur/qui[peut/etre]/unchemin/@Xpath"/>
19 / 26 <xsl:call-template/>
Commentaires dans la sortie

XPath &
XSLT avancé
Syntaxe
M. Sassolas
L3Pro <xsl:comment>
Cours 4 Du commentaire
XPath </xsl:comment>
XSLT avancé
Tri
Variables et
paramètres
Exemple
Petites astuces
Mise en application
<xsl:template match="comment()">
<xsl:comment>
Commentaire repris du XML original:
"""
<xsl:value-of select="."/>
"""
</xsl:comment>
</xsl:template>
20 / 26
Copier des éléments du XML source
Idée

XPath &
XSLT avancé

M. Sassolas Syntaxe
L3Pro

Cours 4
<xsl:variable name="nomVariable">
XPath
Du contenu <tag>potentiellement</tag> XML
XSLT avancé
</xsl:variable>
Tri ...
Variables et
paramètres
Petites astuces
<xsl:copy>Nouveau contenu</xsl:copy>
Mise en application <xsl:copy-of select="element/ou/chemin"/>

I Deux manières de copier.


I Copie de l’élément sans copie des fils (ni des attributs).
I Copie profonde, avec les descendants.
I xsl:copy-of doit toujours être un élément vide.
21 / 26
Copier des éléments du XML source
Exemple

XPath &
XSLT avancé

M. Sassolas
L3Pro Document XML
Cours 4
<elem attr="intro">Bonjour</elem>
XPath

XSLT avancé
Tri
Variables et
paramètres
Feuille XSLT
Petites astuces
Mise en application
Shallow: <xsl:copy>Au revoir</xsl:copy>
Deep: <xsl:copy-of select="."/>

Résultat
Shallow: <elem>Au revoir</elem>
Deep: <elem attr="intro">Bonjour</elem>
22 / 26
Formater du texte comme tel

XPath &
XSLT avancé
Syntaxe
M. Sassolas <xsl:text>
L3Pro

Cours 4
Du texte sans balises!
</xsl:comment>
XPath

XSLT avancé
Tri Exemple (XSLT)
Variables et
paramètres
Petites astuces
<xsl:text>Avant un truc: </xsl:text>
Mise en application
<xsl:value-of select="@note"/>
<xsl:text>. Après le truc.</xsl:text>

Exemple (Résultat)
Avant un truc: A. Apr&egrave;s le truc.

Remarque
23 / 26
Les espaces autour de la valeur sont corrects !
Astuce

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4
Utiliser le navigateur comme processeur XSLT.
XPath

XSLT avancé I Fortement déconseillé lors de la phase d’écriture de la


Tri
Variables et feuille XSL : débuggage impossible.
paramètres
Petites astuces
Mise en application
I Plutôt utile pour rendre facile la lecture de XML
(transformation en HTML plutôt qu’ajout de CSS).
I Demande d’avoir la main sur le XML.

Commande
<?xml-stylesheet type="text/xsl"
href="FeuilleXslt.xsl"?>
24 / 26
Fin du cours

XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath

ë C’est l’heure du TP ê
XSLT avancé
Tri
Variables et
paramètres
Petites astuces
Mise en application

25 / 26
XPath &
XSLT avancé

M. Sassolas
L3Pro

Cours 4

XPath

XSLT avancé
Tri
Variables et
paramètres
Petites astuces
Mise en application

26 / 26

Vous aimerez peut-être aussi