
Envoyé par
polymorphisme
A priori, on peut parcourir les éléments d'un fichier xml à partir de xsl sans soucis.
Oui, mais il y a quand même un gros piège. Supposons que ton doc original soit :
1 2 3 4 5
| <a>
<b/>
<b/>
<b/>
</a> |
Si tu veux accéder aux éléments <b> du doc original, tu vas utiliser quel XPath ?
/a/b, bien entendu ?
Ahah, sauf que si tu traites un résultat qui provient de document(), le contexte sur lequel on va appliquer les prochains XPath viendra lui aussi de ce document.
/ désigne l'ancêtre de tout dans le document en cours, autrement dit le truc obtenu avec document(), et non pas le document original.
Oups !
Pour "s'échapper" de cette situation, le plus simple est de déclarer une variable globale qui pointe vers le document original :
<xsl:variable name='doc' select='/'/>
Partager