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 :

[XSLT] Variable


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [XSLT] Variable
    Bonjour,


    Voila je me posais cette question pendant que je faisais mon XSL est-il possible de déclaré une variable globale (pour tout les template) qui a la valeur d'une données dans le XML?

    Genre (je sais qu'on peut pas mais pour l'exemple):

    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:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:variable name="Lang">
    <xsl:choose>
    <xsl:when test="@lang='1'">de</xsl:when>
    <xsl:when test="@lang='2'">fr</xsl:when>
    <xsl:when test="@lang='3'">it</xsl:when>
    <xsl:when test="@lang='4'">en</xsl:when>
    </xsl:choose>
    </xsl:variable>
    <xsl:template match="/Extract">
    ...
    ...
    ...
    Un truc pour que le variable ai cette valeur dans tout les call-template que je fais après...

    Merci pour votre aide

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    une variable déclarée juste sous xsl:stylesheet peut être utilisée partout dans la feuille de style.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Oui ca je suis tout a fait d'accord mais je ne peux pas si je la déclare en dessous de stylesheet lui affecter une valeur du xml que je veux traité. D'ou ma question
    y a t'il un moyen de définir une variable globale avec une valeur contenu dans le XML?

    Si je reprend celui d'avant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:variable name="Lang"> 
    <xsl:choose> 
    <xsl:when test="/Extract/@lang='1'">de</xsl:when> 
    <xsl:when test="/Extract/@lang='2'">fr</xsl:when> 
    <xsl:when test="/Extract/@lang='3'">it</xsl:when> 
    <xsl:when test="/Extract/@lang='4'">en</xsl:when> 
    </xsl:choose> 
    </xsl:variable> 
    <xsl:template match="/Extract"> 
    ...

    Es-ce que tu comprend maintenant ce que je veux dire?

    Car Sinon:

    Je définit ma variable globale et dans le premier template(Extract que tu vois en-dessus) je lui affecte une valeur et après si je fait des call-template je suis a chaque fois obligé de lui réaffecter la valeur!!!

    Alors y a t'il un moyen de contourner ce problème?

    Merci pour ton aide!!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par virgul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:variable name="Lang"> 
    <xsl:choose> 
    <xsl:when test="/Extract/@lang='1'">de</xsl:when> 
    <xsl:when test="/Extract/@lang='2'">fr</xsl:when> 
    <xsl:when test="/Extract/@lang='3'">it</xsl:when> 
    <xsl:when test="/Extract/@lang='4'">en</xsl:when> 
    </xsl:choose> 
    </xsl:variable> 
    <xsl:template match="/Extract"> 
    ...
    Il n'y a aucune raison que ce code ne fonctionne pas... je ne saisis pas trop où est le problème.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Moi aussi!

    Désolé j'avais ma variable déclaré deux fois en globale une fois avec valeur et une fois sans ce qui me faisais une erreur.

    De plus mon prob étais que j'avais une fois fais un choose dans le stylesheet directement et ca me faisait une erreur type non attendu .

    Je me suis donc dit (malheureusement) que un choose devait etre dans un template d'ou ma question et cette confusion!!!

    Merci une fois de plus tu me sauves!!!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

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

Discussions similaires

  1. [XSLT] Variable comme nom d'attribut
    Par Anubis dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/02/2008, 16h34
  2. [XSLT] Variable pour tout le fichier
    Par Mimoza dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/10/2007, 10h00
  3. [XSLT] variables d'URL
    Par popachubby dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2006, 16h23
  4. [XSLT][VARIABLE] comment un noeud est-il stocké?
    Par Devotion dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 02/11/2004, 14h19
  5. [XSLT] Variable par défaut ou non dans un 'IF'
    Par Johnbob dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2004, 17h00

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