Bonjour,
Je souhaite construire un "glossaire" en XSL (1.0, je n'ai pas la possibilité de monter en 2.0)
Mon fichier ressemble à ceci :
La sortie contient deux "parties" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <Uri> <Title>Mon premier élément</Title> </Uri> <Uri> <Title>Mon deuxième élément</Title> </Uri> <Uri> <Title>AZERTY</Title> </Uri> ...
- Dans la premier partie, j'ai un alphabet,
S'il existe au moins un élément "Title" dont la première lettre est "A", je dois mettre "enabled" dans les classes du span.
Sinon je dois mettre "disabled".
S'il existe au moins un élément "Title" dont la première lettre est "B", je dois mettre "enabled" dans les classes du span correspondant.
Sinon je dois mettre "disabled".
Etc.
Mon deuxième besoin consiste afficher l'ensemble des éléments Title en les classant par ordre alphabétique et dans les plaçant dans le bon "ul".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <div class=alphabet> <span class="letterA enabled">A</span> <span class="letterB disabled">B</span> <span class="letterC disabled">C</span> <span class="letterD disabled">D</span> <span class="letterE disabled">E</span> ... <span class="letterM enabled">M</span> ... <span class="letterZ disabled">Z</span> </div>
Dans mon premier besoin, je n'arrive pas à faire un test du type :
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 <div class=letterA> <strong>A</strong> <ul> <li>AZERTY</li> </ul> </div> <div class=letterB> <strong>B</strong> <ul> </ul> </div> ... <div class=letterM> <strong>M</strong> <ul> <li>Mon deuxième élément</li> <li>Mon premier élément</li> </ul> </div>
==> L'argument 1 de la fonction 'count()' ne peut pas être converti en collection de noeuds. -->count(substring(...itle,0,1) = 'A')<-- > 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xsl:if test="count(substring(//Uri/Title,0,1) = 'A')>0"> A EST PRESENT </xsl:if>
Dans mon second besoin, je n'arrive pas à faire grand chose non plus : //.
La finalité est d'introduire le résultat dans une page web MAIS je ne peux pas traiter ces problèmes en javascript. J'ai d'autres contraintes qui m'imposent de trouver une solution 'full xsl'.
Merci pour votre aide![]()
Partager