Bonjour à tous,
Alors voila je vous expose mon problème.
Je dois transformer un fichier XML en fichier CSV via le langage XSLT
Or certains Noeuds peuvent être répété n fois.
J'utilise donc une récursion pour parcourir mon arbre et avoir un fichier CSV complet en sortie.
Cela fonctionne mais le soucis est que cette récursion est beaucoup trop gourmande en temps de traitement, je voulais donc savoir si vous aviez quelques pistes de réflexions à me proposer.
Voici le code que j'utilise actuellement :
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
32
33
34
35
36
37
38 <xsl:template name="repeatAffichebalise"> <!-- Nombre de répétitions voulues --> <xsl:param name="repeatNum"/> <!-- Condition de non-arrêt de la récursion --> <xsl:if test="count(//ns0:adminFile)>$repeatNum"> <AfficheBalise> <xsl:for-each select="ns0:file/ns0:emp_set/ns0:emp"> <xsl:value-of select="ns0:adminData/ns0:adminFile_set/ns0:adminFile[repeatNum]/ns0:adminDataType"/> <xsl:text>";"</xsl:text> <xsl:value-of select="ns0:adminData/ns0:adminFile_set/ns0:adminFile[repeatNum]/ns0:cntrct/ns0:empCtgr"/> <xsl:text>";"</xsl:text> </xsl:for-each> </AfficheBalise> <!-- Appeler la récursion suivante --> <xsl:call-template name="repeatAffichebalise"> <xsl:with-param name="repeatNum" select="$repeatNum + 1"/> </xsl:call-template> </xsl:if> </xsl:template> <!-- Parcours de l'arbre XML --> <xsl:template match="/"> <!-- Appel de la procédure récursive --> <xsl:call-template name="repeatAffichebalise"> <xsl:with-param name="repeatNum" select="'0'"/> </xsl:call-template> </xsl:template>
Merci par avance !
Partager