[XSLT] XPath et accolades
Bonjour,
Pour afficher le contenu d'une discussion au format xml avec xslt, je tente d'accèder avec XPath à un élément selon la valeur de son attribut, bref :
Code:
1 2 3
| <xsl:template match="replique">
<li><xsl:apply-templates select="/discussion/contexte/destinataire[@destid='{@expid}']/pseudo" /> : <xsl:apply-templates /></li>
</xsl:template> |
qui s'applique au code xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <discussion>
<contexte>
<destinataire destid="0">
<pseudo>Test</pseudo>
</destinataire>
<destinataire destid="1">
<pseudo>Gus</pseudo>
</destinataire>
</contexte>
<replique expid="1">
Salut !
</replique>
<replique expid="0">
Salut, ça va ?
</replique>
<replique expid="1">
Yop, et toi ?
</replique>
</discussion> |
Pour avoir finalement dans le navigateur :
- Gus : Salut !
- Test : Salut, ça va ?
- Gus : Yop, et toi ?
Pour le moment, il me semble que [@destid='{@expid}'] pose problème (pas d'erreur, mais le pseudo n'est pas affiché, donc je suppose que le chemin XPath n'est pas valide), alors que si je remplate {@expid} par une id valide (genre 0 ou 1 ici), ça me met le même pseudo partout (donc c'est bien cette partie qui dérange). Mais je ne vois pas comment faire autrement pour que chaque réplique puisse afficher le pseudo correspondant à son id.
Ma syntaxe n'est pas valide ou c'est une erreur de sens ?
Merci d'avace !