Bonjour
j'ai un problème d'algorithme appliqué au xsl. j'ai les fonctions
suivantes (pseudo-code)
generate-fo:
<xsl:choose>
<xsl:when test="image/note < 3">
<xsl:call-template name="p3parPage">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="p1parPage">
</xsl:otherwise>
</xsl:choose>
p1parPage
[...]
<xsl:if test="string($image[$cur_position+1]/path)">
<xsl:choose>
<xsl:when test="$image[$cur_position+1]/note < 3">
<xsl:call-template name="p3parPage" select-into="retval">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="p1parPage">
</xsl:otherwise>
</xsl:choose>
</xsl:if>
p3parPage
[...]
traite première photo
[...]
<xsl:if test="string($image[$cur_position+1]/path) and
($cur_position+1 < $nbPhotos)">
<xsl:choose>
<xsl:when test="$image[$cur_position+1]/note < 3">
<xsl:call-template name="Affiche1photoSur3">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="p1parPage" select-into="retval">
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="string($image[$cur_position+2]/path) and
($cur_position+2 < $nbPhotos) and $retval!='end'">
<xsl:choose>
<xsl:when test="$image[$cur_position+2]/note < 3">
<xsl:call-template name="Affiche1photoSur3">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="p1parPage">
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="string($image[$cur_position+3]/path) and
($cur_position+3 < $nbPhotos) and $retval!='end'">
<xsl:choose>
<xsl:when test="$image[$cur_position+3]/note < 3">
<xsl:call-template name="p3parPage" select-into="retval">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="p1parPage">
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="($cur_position+3 < $nbPhotos)"><xsl:return
select="end" /></xsl:if>
le "programme" sert à faire un album photo et selon les notes des
photos, les afficher soit 3 par page, soit 1 par page. En l'absence de
variable modifiable, le programme se fait en récursif.
Problème dont je ne me suis pas aperçu initialement, utilisation de cas
particuliers (toutes la mêmes notes ou placement des notes).
maintenant, quand j'applique la feuille xsl sur un grand nombre, cela
s'exécute correctement mais lorsqu'il "dépile" la récursion, il traite
plusieurs fois une même photo ...
en l'absence de variable modifiable, j'ai essayé xsl:return mais
celui-ci est bloqué dans le contexte du xsl:when/otherwise et n'est donc
pas utilisable ...
qq un aurait une idée pour réussir à dire que c'est fini ?
merci
@+
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Tue May 9 19:15:28 2006