Salut,
Je voudrais savoir comment faire pour travailler sur des données après qu'elles soient triées par <xsl:sort>.
En pratique, j'ai une liste de fonctions :
On va dire qu'on y accède via "document('fct.xml')/categorie".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <categorie nom="Fonctions générales" id="generale"> <fonction page="lisp" nom="Lisp">Convertit une expression en expression au format LISP</fonction> <fonction page="sign" nom="Signe">Signe d'un élément</fonction> <fonction page="abs" nom="Abs">Valeur absolue</fonction> <fonction page="min" nom="Min">Minimum de deux expressions</fonction> <fonction page="max" nom="Max">Maximum de deux expressions</fonction> <fonction page="opposite" nom="Oppose">Opposé d'un élément</fonction> <fonction page="more_less" nom="PlusMoins">Plus ou moins une valeur</fonction> </categorie>
Je les affiche donc par :
Super, c'est trié !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xsl:for-each select="document('fct.xml')/categorie/fonction"> <xsl:sort select="@nom" /> <li> <a href="{@page}.php" title="{.}"><xsl:value-of select="@nom" /></a> </li> </xsl:for-each>
Mainteant, plus dur : trouver la fonction suivante et précédente, sachant que la fonction actuelle est identifiée par sa page ($page) : "fonction[@page=$page]" ... dans la liste triée !
Pour trouver la fonction suivante, non triée c'est un truc du style :
Pour la précédente, on prend : on utilise "preceding-sibling::*[1]".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:variable name="fct_cate" select="document('fct.xml')/categorie" /> <xsl:value-of select="$fct_cate/fonction[@page=$page]/following-sibling::*[1]/@page" />
@+ Haypo
Partager