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é

Supposons que l'on ait :
- en entrée :
un fichier xml du type :

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