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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !