Re: mise en page différentes pour des éléments de même type

Robin Berjon <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
On Apr 22, 2006, at 23:39, Herve AGNOUX wrote:
> Si vous faites un tableau HTML (on a quand même le droit de temps  
> en temps)
> (surtout si c'est pour faire un tableau d'images !! ), par exemple,  
> cela vous
> donnera quelque chose du genre (non testé, vite fait le samedi soir)
>
> <table><tr><td>
> <xsl:for-each select="IMAGES/IMAGE">
>  <td>... ce qu'il faut pour afficher l'image ...</td>
>  <xsl:if test="position() != last()">
>   <xsl:if test="(position() mod 3) == 0">
>    </tr><tr>
>   </xsl:if>
>   </xsl:if>
> </xsl:for>
> </td></tr></table>

Hmmm, non Hervé, c'est pas du XML ce que tu nous met là :) Pour moi  
aussi c'est samedi soir, donc je met un truc pas plus testé, mais  
j'espère au moins well-formed :-)

<xsl:template match='images'>
   <table>
     <xsl:apply-templates select='image'/>
   </table>
</xsl:template>

<xsl:template match='image[position() mod 3 == 1]'>
   <tr>
     <td><img src='{@href}'.../></td>
     <td><img src='{following-sibling::image[1]/@href}'.../></td>
     <td><img src='{following-sibling::image[2]/@href}'.../></td>
   </tr>
</xsl:template>

<xsl:template match='image[position() mod 3 != 1]'/>

Le principe de base est toujours le même pour ce genre de groupage:  
sélectionner le premier élément de chaque groupe, puis depuis lui  
sélectionner les autres (et les ignorer activement pour le reste du  
code).

Enfin tout ça pour dire qu'on serait mieux à boire une bière.

-- 
Robin Berjon
    Senior Research Scientist
    Expway, http://expway.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.