[XSLT] compter des lignes / 2 colonnes
Bonsoir,
Je ne suis pas doué en XSL ...
J'avais un bout de code XSL qui me permettait de présenter en 2 colonnes un texte mais je n'arrive pas à l'adapter à mon nouveau XML qui n'est pas construit de la même façon ...
:calim2:
Je voudrait classer en 2 colonnes les 'section', pour cela je pensait compter les 'section/titre' (le mieux serait de compter les ssection/titre mais c'est encore plus compliqué pour moi LOL)
Le XML:
Code:
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
|
<cours>
<contenu>
<partie>
<section>
<titre>Introduction</titre>
<ssection>
<titre>Historique de TCP/IP et d'internet</titre>
</ssection>
<ssection>
<titre>Qu'est-ce que le World Wide Web ?</titre>
</ssection>
<ssection>
<titre>Le protocole http</titre>
</ssection>
<ssection>
<titre>Internet / Intranet</titre>
</ssection>
</section>
<section>
<titre>Serveurs et navigateurs Web</titre>
<ssection>
<titre>Communication client / serveur Web</titre>
</ssection>
<ssection>
<titre>Les principaux navigateurs</titre>
</ssection>
</section>
</partie>
</contenu>
</cours> |
Le XSL :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
...
<!-- Pour gérer les 2 colonnes -->
<xsl:key name="ITEMS" match="//titre" use="count(preceding::titre)+1"/>
<xsl:variable name="ITEM_MEDIAN" select="key('ITEMS', floor(count(//titre) div 2))"/>
<xsl:variable name="CHAPITRE_MEDIAN" select="//contenu[partie/section/titre = $ITEM_MEDIAN]"/>
...
<table>
<tr>
<td>col1<xsl:apply-templates select="contenu/partie [ following-sibling::section = $CHAPITRE_MEDIAN or self::section = $CHAPITRE_MEDIAN ]"/></td>
<td>col2<xsl:apply-templates select="contenu/partie [ preceding-sibling::section = $CHAPITRE_MEDIAN ]"/></td>
</tr>
</table> |
Ca ne match pas ce qu'il faut, j'obtiens col1 | col2 mais pas mon contenu :aie: