Compteur XSL...Portée des variables limitée
Bonjour à tous,
Je pense que pas mal de gens se sont déjà penchés sur la chose mais n'ayant rien trouvé sur le forum à ce sujet, je fais donc appel à l'abondance de matière grise présente dans cette communauté :wink:
Supposons que l'on ait :
- en entrée :
un fichier xml du type :
Code:
1 2 3 4 5 6 7 8 9
| <in:Interchange>
<se:UNB />
<me:MESSAGE>
<se:UNH />
<se:BGM />
<se:DTM />
<se:DTM />
</me:MESSAGE>
</in:Interchange> |
- En sortie on voudrait obtenir :
un fichier xml du type :
Code:
1 2 3 4 5 6 7 8 9
| <in:Interchange>
<se:UNB numLigne="1" />
<me:MESSAGE>
<se:UNH numLigne="2" ></se:UNH >
<se:BGM numLigne="3" ></se:BGM >
<se:DTM numLigne="4" ></se:DTM >
<se:DTM numLigne="5" ></se:DTM >
</me:MESSAGE>
</in:Interchange> |
- Pour ce faire on utilise une feuille xslt de pré traitement :
Code:
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 31
| <xsl:template match="/">
<in:Interchange>
<se:UNB>
<xsl:attribute name="numLigne">
<xsl:call-template name="compteur" ></xsl:call-template>
</xsl:attribute>
</se:UNB>
<xsl:for-each select="/in:Interchange/me:MESSAGE">
<me:MESSAGE>
<se:UNH>
<xsl:attribute name="numLigne">
<xsl:call-template name="compteur" ></xsl:call-template>
</xsl:attribute>
</se:UNH>
<se:BGM>
<xsl:attribute name="numLigne">
<xsl:call-template name="compteur" ></xsl:call-template>
</xsl:attribute>
</se:BGM>
<xsl:for-each select="se:DTM">
<se:DTM>
<xsl:attribute name="numLigne">
<xsl:call-template name="compteur" ></xsl:call-template>
</xsl:attribute>
</se:DTM>
</xsl:for-each>
</me:MESSAGE>
</xsl:for-each>
</in:Interchange>
</xsl:template> |
Est-il possible d'écrire un template "compteur" permettant de retourner un paramètre i et de l'incrémenter en i++ pour l'appel suivant ?
Vos idées sont les bienvenues, par avance merci :)