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 :

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'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
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() &lt; $M * $C]">
      <td>
       <xsl:for-each select=".|following-sibling::fichier[position() &lt; $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 &gt;= 1">
   <td/>
    <xsl:call-template name="cellules_vides">
     <xsl:with-param name="nb" select="$nb - 1"/>
    </xsl:call-template>
  </xsl:if> 
</xsl:template>
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 :

fic1 fic2
fic3 fic4
...
fic9 fic10
blabla
fic11 fic12
...

Merci à l'avance

iDaaX