Bonjour à tous,
J'utilise une partie de la solution exposée dans le défi de septembre 2004 pour afficher les données de mon fichier xml en colonnes. Supposons que j'ai le fichier xml suivant :
J'applique la transformation suivante :
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 <fichiers> <fichier nom="fic1"/> <fichier nom="fic2"/> <fichier nom="fic3"/> <fichier nom="fic4"/> <fichier nom="fic5"/> <fichier nom="fic6"/> <fichier nom="fic7"/> <fichier nom="fic8"/> <fichier nom="fic9"/> <fichier nom="fic10"/> <fichier nom="fic11"/> </fichiers>
J'aimerais pouvoir insérer un bris avant le 11e noeud, le 22e noeud, etc. et y insérer du texte afin d'obtenir quelque chose comme ça :
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 <xsl:template match="/"> <html> <body> <table border="1"> <xsl:for-each select="//fichier[position() mod ($M * $C) = 1]"> <tr> <xsl:for-each select=".|following-sibling::fichier[position() mod $M = 0 and position() < $M * $C]"> <td> <xsl:for-each select=".|following-sibling::fichier[position() < $M]"> <xsl:value-of select="@nom"/><br/ </xsl:for-each> </td> </xsl:for-each> <xsl:if test="position() = last()"> <xsl:call-template name="cellules_vides"> <xsl:with-param name="nb" select="$C - ceiling(count(.|following-sibling::fichier) div $M)"/> </xsl:call-template> </xsl:if> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> <xsl:template name="cellules_vides"> <xsl:param name="nb"/> <xsl:if test="$nb >= 1"> <td/> <xsl:call-template name="cellules_vides"> <xsl:with-param name="nb" select="$nb - 1"/> </xsl:call-template> </xsl:if> </xsl:template>
fic1 fic2
fic3 fic4
...
fic9 fic10
blabla
fic11 fic12
...
Merci à l'avance
iDaaX
Partager