XML |
|
XSL |
<book>
<chapter>
<title>Introduction</title>
<content>.....</content>
</chapter>
<chapter>
<title>First
part</title>
<content>.....</content>
</chapter>
</book> |
|
<xsl:template match="chapter">
<xsl:value-of select="position()"/> - <xsl:value-of select="title"/>
</xsl:template>
|
Résultat :
2 - Introduction
4 - First part
|
La position du premier élément
chapitre est 2, celle du second
est 4. Le processeur considère en effet que l'élément
book a 4 fils : un élément
text composé d'un retour-charriot
et d'une tabulation, le premier élément chapitre,
un autre élément text
identique au premier et le second élément chapitre.
|
|
|
L'instruction
strip-space permet de
préciser, pour un type d'élément donné, d'ignorer
les éléments
text vides.
C'est une instuction de premier niveau,
i.e.
elle doit être enfant direct de l'élément
xsl:stylesheet.
En reprenant le même document XML en entrée, on obtient :
XSL |
|
Résultat |
<xsl:strip-space elements="book"/>
<xsl:template match="chapter">
<xsl:value-of select="position()"/> - <xsl:value-of select="title"/>
</xsl:template> |
|
1 - Introduction
2 - First part |
|
preserve-space
Il peut néanmoins être pertinent de conserver ces "blancs".
En reprenant un document XML de même nature en entrée, affichons
pour chaque chapitre son titre numéroté et son contenu :
XML |
|
|
<book>
<chapter>
<title>Modes
d'utilisation</title>
<content>
<p>Il
existe 3 modes d'utilisation :</p>
<p>En
ligne de commande, bla bla bla...</p>
<p>Les
navigateurs bla bla bla.</p>
<p>Les
serveurs bla bla bla.</p>
<p>En
conclususion, blablabla.</p>
</content>
</chapter>
<chapter>
<title>Structure
d'un document</title>
<content>Un
document XSLT est composé d'éléments XML, bla
bla bla...</content>
</chapter>
</book> |
XSL |
|
Résultat |
<xsl:strip-space elements="*"/>
<xsl:template match="//chapter">
<xsl:value-of select="position()"/>
-
<xsl:value-of select="title"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="content"/>
<xsl:text> </xsl:text>
</xsl:template>
|
|
1 - Modes d'utilisation
Il existe 3 modes d'utilisation :En ligne de commande, bla bla bla...Les
navigateurs bla bla bla.Les serveurs bla bla bla.En conclususion,
blablabla.
2 - Structure d'un document
Un document XSLT est composé d'éléments XML,
bla bla bla... |
Nous voyon ici que les retour à la ligne entre
les paragraphes présents dans le document initial n'ont pas
été reproduits en sortie. Nous avons en effet appliqué
la directive strip-space à
tous les éléments (elements="*").
Les "lignes vides" sont des noeuds de type text
ne contenant que des "caractères blancs" et sont
donc ignorés.
Il est possible d'indiquer au processeur de prendre en considération
ces éléments via l'instruction opposée preserve-space :
|
XSL |
|
Résultat |
<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="content"/>
<xsl:template match="//chapter">
<xsl:value-of select="position()"/>
-
<xsl:value-of select="title"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="content"/>
<xsl:text> </xsl:text>
</xsl:template>
|
|
1 - Modes d'utilisation
Il existe 3 modes d'utilisation :
En ligne de commande, bla bla bla...
Les navigateurs bla bla bla.
Les serveurs bla bla bla.
En conclususion, blablabla.
2 - Structure d'un document
Un document XSLT est composé d'éléments XML,
bla bla bla...
|