J'ai besoin de faire un "pseudo" for via XSL. Le but final est de faire s'afficher une pagination qui pioche la valeur max du nombre de page dans un fichier XML ressemblant à :
Je veux donc générer : 1-2-3-4 (avec les liens sur les numéros) à partir du "4". Or, le "for" type C n'existant pas, il faut passer via les templates. J'ai essayé différentes méthodes pour simuler le for via XSL mais aucune ne semble marcher : "Le mot clé xsl:template ne doit pas être utilisé ici."
Marsh Posté le 24-01-2005 à 15:58:18
J'ai besoin de faire un "pseudo" for via XSL. Le but final est de faire s'afficher une pagination qui pioche la valeur max du nombre de page dans un fichier XML ressemblant à :
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="testfor.xsl"?>
<resultats nbpages="4"/>
Je veux donc générer : 1-2-3-4 (avec les liens sur les numéros) à partir du "4". Or, le "for" type C n'existant pas, il faut passer via les templates. J'ai essayé différentes méthodes pour simuler le for via XSL mais aucune ne semble marcher : "Le mot clé xsl:template ne doit pas être utilisé ici."
Voici ma fiche XSL :
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
test de boucle "for" 1->4<br/>
<xsl:template name="boucle">
<xsl:param name="debut">1</xsl:param>
<xsl:param name="fin"><xsl:value-of select="resultats/@nbpages"/></xsl:param>
<a>
<xsl:attribute name="href">
<xsl:value-of select="$debut"/>?numpage=<xsl:value-of select="$debut"/>
</xsl:attribute>
-
</a>
<xsl:if test="$debut < $fin">
<xsl:call-template name="boucle">
<xsl:with-param name="debut" select="($debut)+1" />
<xsl:with-param name="fin" select="$fin" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Merci de me sortir de ce pétrin !
NB