Bonjour,
Je dois parser un fichier XML de ce type (la partie qui m'intéresse est en gras) :
Je dois traiter le noeud : PartyLodged sauf qu'il peut y en avoir jusqu'à 9 (le nombre varie)
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>
Donc j'appelle le template suivant car j'ai besoin de concaténer ma chaine de caractère grace à l'indice d'itération :
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
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>
Mais cela ne marche pas et je pense que ca vient du starts-with ou du concat...
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>
Y a t-il une syntaxe qui n'est pas bonne ? Ou bien une mauvaise utilisation de paramètre ?
Merci d'avance
Partager