rahhh, c'est bien XSL, mais y'a vraiment des caps à franchir plutôt frustrants, grrrr.

J'ai un template qui est appelé mais le paramètre passé lors de l'appel n'est pas réellement transmis. Et je ne vois pas la raison obscure de la force

soit le doc 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
20
21
22
23
24
25
26
27
28
29
30
<DATAS>
	<STAGIAIRES>
		<STAGIAIRE>
			<NOM>JAMES</NOM>
			<PRENOM>Sylvain</PRENOM>
		</STAGIAIRE>
		<STAGIAIRE>
			<NOM>TOTO</NOM>
			<PRENOM>Ratagno</PRENOM>
		</STAGIAIRE>
	</STAGIAIRES>
	<html>
		<head>
			<title>essai template</title>
			<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
		</head>
		<body>
			<table width="50%" border="1">
				<tr>
					<td>
						<a name="nom"/>
					</td>
					<td>
						<a name="prenom"/>
					</td>
				</tr>
			</table>
		</body>
	</html>
</DATAS>
et le doc XSL :

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
20
21
22
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">
		<xsl:apply-templates/>
	</xsl:template>
	<xsl:template match="html//*">
		<xsl:param name="stagiaire"/>
		<xsl:if test="name() ='a'">
			<xsl:value-of select="$stagiaire/NOM"/>
		</xsl:if>
		<xsl:if test="name() !='a'">
			<xsl:copy>
				<xsl:apply-templates/>
			</xsl:copy>
		</xsl:if>
	</xsl:template>
	<xsl:template match="STAGIAIRE">
		<xsl:apply-templates select="//html">
			<xsl:with-param name="stagiaire" select="."/>
		</xsl:apply-templates>
	</xsl:template>
</xsl:stylesheet>
Le template match="STAGIAIRE" déclenche l'appel des templates matchant //html mais surtout en passant en paramètre le stagiaire courant.
Ensuite le template <xsl:template match="html//*"> est déclenché mais à la lecture du parmaètre on a rien quedale. rah.

Si j'ajoute une règle, et que je l'appelle avec Call-Template en passant le même paramètre, cette fois il est bien passé.
J'en déduis que le paramètre doit être lié au noeud contexte quelque part, non ?

Sylvain