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 :
- En sortie on voudrait obtenir :
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>
un fichier xml du type :
- 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 <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>
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
Partager