Les espaces dans un fichier XML ...
Fondamental : Interprétation des espaces
Chaque espace séparant deux éléments du fichier source peut être considéré comme un nœud texte à part entière.
L'arbre créé par le processeur XSLT peut par conséquent, légèrement différer de la vision que l'on s'en fait.
Exemple : Reprise de l'exemple précédent
Voici un représentation simplifiée de l'arbre généré par le processeur XSLT :
Conseil : L'instruction strip-space
On peut toutefois éliminer les whitespaces entre les éléments en invoquant l'instruction strip-space.
Cette instruction est à placer en tant que fils de xsl:stylesheet.
Exemple : Reprise de l'exemple précédent
Pour éviter de comptabiliser les "espaces", il suffit de rajouter la ligne suivante dans votre fichier XSLT :
On obtient bien le résultat souhaité :
<persons>
<person id="1">
<name>Stevie</name>
</person>
<person id="2">
<name>Roy</name>
</person>
<person id="3">
<name>Peter</name>
</person>
</persons>
<?xml version="1.0" encoding="UTF-8"?><persons> <person id="1"> <name>Stevie</name> </person> <person id="2"> <name>Roy</name> </person> <person id="3"> <name>Peter</name> </person> </persons>
Remarque : Pas très pratique...
Comme nous venons de le voir, la fonction position() ne se prête pas réellement à l'exercice de la numérotation à part peut-être dans des cas triviaux.