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 ...
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:
Le XSL :
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 <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>
Ca ne match pas ce qu'il faut, j'obtiens col1 | col2 mais pas mon contenu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager