IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL FO] Problème de test


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut [XSL FO] Problème de test
    Bonjour,

    J'ai un soucis au niveau d'un test que j'effectue entre 2 variables...

    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
    <xsl:variable name="PageTotal">
    	  <fo:page-number-citation ref-id="NbPageTotal"/>
    	</xsl:variable>
    	<xsl:variable name="PageActuelle">
    	  <fo:page-number/>
    	</xsl:variable>
     
    	<xsl:choose>	
    	<xsl:when test="'$PageActuelle' != '$PageTotal'">
    	  <fo:block break-after="page"/>
    	  <fo:block>
    	  <fo:page-number/>/<fo:page-number-citation ref-id="NbPageTotal"/>
    	</fo:block>
    	</xsl:when>
    	<xsl:otherwise>
    	  <fo:block>CA MARCHE</fo:block>
    	</xsl:otherwise>
    	</xsl:choose>
    Voici mon code, ma variable NbTotalPage ayant était déclarée plus bas par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <fo:block id="NbPageTotal"/>
    Il ne fait pas la différence entre mes 2 phases de test...

    Il m'écrit dans tous les cas la première partie de mon test et n'effectue pas la seconde...

    (Si page 1/2, il écrit 1/2 et passe à la page d'après mais, si page 2/2, il n'écrit pas CA MARCHE...Il écrit 2/2.)

    Merci pour votre aide...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Je crois que <fo:page-number-citation ref-id="NbPageTotal"/> n'a de valeur qu'au moment où un moteur le transforme en document.
    Or la transformation xslt à lieu en amont, donc ne peut l'évaluer.
    Ca fait un peut trop longtemps que j'ai pas fait de xslt-fo pour te proposer une alternative.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    comme dit ce post http://www.developpez.net/forums/sho...d.php?t=342959 ce que tu veux faire est ipossible..tu ne peux pas sauvegarder le numéro de page dans une variable xsl...tu peux juste l'afficher.

    mais peut être qu'on peut faire autrement, que ce que tu souhaites faire?

  4. #4
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    En faite il calcul le numéro de page à la volée voila pourquoi tu ne peux la conserver

  5. #5
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    OK je comprend...

    Je pense avoir une autre solution, je vais compter le nombre de tableau et tous les 3 tableaux je ferai un saut de page...

    Je sais tester ma variable mais je ne sais pas comment la réinitialiser...

    Un peu d'aide SVP !!

    Merci beaucoup.
    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:variable name="num">
    <xsl:number level="any" count="Ligne1"/>
    </xsl:variable>						
    <xsl:if test="$num='3'">
    <fo:block break-before="page" >
    </fo:block>
    </xsl:if>
    Merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  2. [xsl:fo] problème avec external-graphic
    Par jehlg dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/10/2005, 11h57
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. [XSL/JavaScript]problème d'intégration code JS dans le XSL
    Par Devil666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/04/2005, 16h36
  5. [XSL] Petit problème de selection d'un noeud
    Par Greg L. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2005, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo