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] Attribut de style de police conditionnel


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut [XSL FO] Attribut de style de police conditionnel
    Bonjour,

    voici un exemple de XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <noeud>
      <sousnoeud>
        <evenement>O</evenement>
      </sousnoeud>
      <sousnoeud>
        <evenement />
      </sousnoeud>
      <sousnoeud>
        <evenement>O</evenement>
      </sousnoeud>
    </noeud>
    Et ce que je fais en XSL FO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
      <xsl:choose>
        <xsl:when test="evenement='O'">
          <fo:block font-style="italic">
            blablabla...
          </fo:block>
        </xsl:when>
        <xsl:otherwise>
          <fo:block>
            blablabla...
          </fo:block>
        </xsl:otherwise>
      </xsl:choose>
    ...
    Le problème est que la partie 'blablabla...' est longue (300~400 LOC) et est identique dans les deux cas. La seule chose que change, c'est le style de la police (italic si evenement='O').

    Je cherche un moyen d'éviter de dupliquer du code, comme il est possible de le faire en htlm en utilisant le 'disable-output-escaping="yes"'.

    Je voudrais faire le test sur la valeur de 'evenement' et s'il est à 'O', rajouter le style 'italic' dans mon 'block', sinon ne rien faire puis faire mon 'blablabla... une seule fois.

    Merci d'avance.

  2. #2
    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
    tu peux faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         <fo:block>
     
        <xsl:if test="evenement='O'">
            <xsl:attribute name="font-style">italic</xsl:attribute>
        </xsl:if>
     
            blablabla...
          </fo:block>
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    C'est exactement ce que je voulais.

    J'avais essayé d'utiliser un '<xsl:attribute...' mais je ne sais plus pourquoi, j'avais bloqué . Pourtant c'est vraiment simple d'utilisation en fait.

    Un grand merci à toi valal ^_^


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

Discussions similaires

  1. [xsl fo] Appliquer un style "Word" à une transfo FO
    Par david_m dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/05/2006, 08h55
  2. [FLASH 8] Comment utiliser un style de police
    Par steeves5 dans le forum Flash
    Réponses: 4
    Dernier message: 25/02/2006, 17h32
  3. Récupérer le nom des styles de police
    Par boublee dans le forum Windows
    Réponses: 1
    Dernier message: 10/08/2005, 17h02
  4. [XSL][PHP] Attribut généré par xsl:attrbute
    Par mamat- dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/07/2005, 11h08
  5. [débutant][XSL][FOP] Attribut à partir d'un paramètre XML
    Par drinkmilk dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/03/2005, 09h41

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