Bonjour,

Je dois parser un fichier XML de ce type (la partie qui m'intéresse est en gras) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<Case>
<Key></Key> <Category></Category> <PartyLodged-01>06-06-2007</PartyLodged-01> <PartyLodged-02>06-06-2007</PartyLodged-02> <PartyLodged-03>06-06-2007</PartyLodged-03>
</Case>
Je dois traiter le noeud : PartyLodged sauf qu'il peut y en avoir jusqu'à 9 (le nombre varie)
Donc j'appelle le template suivant car j'ai besoin de concaténer ma chaine de caractère grace à l'indice d'itération :

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
 
<xsl:template name="parties">
 
	<xsl:param name="iteration"/>
	<xsl:param name="noeud"/>
	<xsl:if test="$iteration != 9">
 
		<xsl:apply-templates select="noeud/*[starts-with(name(),concat('PartyLodged-0',$iteration)]" />
 
		<xsl:call-template name="parties">
			<xsl:with-param name="iteration" select="$iteration + 1"/>
			<xsl:with-param name="noeud" select="$noeud"/>
		</xsl:call-template>
	</xsl:if>
 
</xsl:template>
Qui appelle le template suivant dès qu'on a trouvé un noeud :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<xsl:template match="noeud/*[starts-with(name(),concat('PartyLodged-0',$iteration)]">
	<td>
		<xsl:apply-templates />
	</td>
</xsl:template>
Mais cela ne marche pas et je pense que ca vient du starts-with ou du concat...

Y a t-il une syntaxe qui n'est pas bonne ? Ou bien une mauvaise utilisation de paramètre ?

Merci d'avance