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] Test d'existence de variable


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 29
    Points
    29
    Par défaut [XSLT] Test d'existence de variable
    Bonjour,

    Voilà je découvre le xslt, et je bute sur un petit problème.

    j'ai un xml de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <famille>
      <parentsliste>
        <parent type="pere">
        </parent>
        <parent type="mere">
        </parent>
        <parent type="grandpere">
        </parent>
      </parentsliste>
    </famille>
    je veux pondre un checkbox pour chaque parent possible, et qu'il soit coché si le parent existe, sinon ne pas le cocher.

    Pour cela, pour chaque type je fais un truc du genre :

    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
    19
    20
    21
    22
     
     
    <xsl:for-each select="parentsliste/parent">
      <xsl:if test="@type='grandmere'">
        <xsl:variable name="toto"/>
          <input 
    	type="checkbox" 
    	align="center" 
    	value="GrandMother" 
    	name="GrandMother" 
    	id="GrandMother"
    	checked="true"/> Grand-mère
      </xsl:if>
    </xsl:for-each>	
    <xsl:if test="not($toto)">
      <input 
        type="checkbox" 
        align="center" 
        value="GrandMother" 
        name="GrandMother" 
        id="GrandMother"/> Grand-mère
    </xsl:if>
    mais le "<xsl:if test="not($toto)">" fait planter la page.

    Je voudrais savoir comment tester l'existence d'une variable, ou encore si il y a un meilleur moyen de faire ça.

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 78
    Points
    78
    Par défaut
    Je suis aussi debutant en xslt, donc tout ce que je te dirais est a verifier

    J'ai pas tout compris ce que tu voulais faire , notamment avec ta variable toto qui n'as pas de valeur. Tu pourrais declarer ta variable toto avant la "boucle" et si tu rencontre une grand mere tu lui donne une valeur par exemple GG . Ensuite tu teste si toto est egal à GG ....

    Ce que j'ai cru comprendre c'est que l'exemple que tu nous a donné correspond à la liste de type de relation que tu autorise (pere, mere, grandmere) et que ensuite dans le reste de ton fichier xml tu utiliserai ses relations.
    Alors peut etre qu'un teste du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="count(//*[@*='pere' ])>1">
    Cette expression teste si on retrouve plus de une fois un noeud avec pour attribut pere ( plus de une fois car elle est presente une fois dans ta liste de relation), donc si on retrouve plus de une fois l'attribut pere alors tu peux cocher la case

    Aprés tout dépend de ton xml.

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Mauvaise approche et incodable.
    Notamment à cause de la vie et de la portée d'une variable
    voir http://erwy.developpez.com/cours/langage/xslt/variable/

    Si tu veux des input "personnalisé" a chaque cas, le plus propre est de crée un deuxième fichier xml avec les données qui t'interesse dans chaque cas.
    Ensuite, à l'aide de la fonction "document(......)" tu pourras effectuer une jointure dans le xml entre les deux fichiers.

    Enfin pour ce que j'ai pu comprendre....

Discussions similaires

  1. Test d'existence de variable à partir d'une fonction
    Par telecofr dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/10/2009, 12h08
  2. [XSLT] test si un élément n'existe pas
    Par nadsky dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/06/2009, 13h10
  3. Test d'existence d'une variable
    Par Zhitoune dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/01/2009, 16h08
  4. [XSLT] Teste si une variable est nulle
    Par kkwet30 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/02/2008, 20h50
  5. [XSLT] Comparaison de XML / test d'existence
    Par gojira dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 23/06/2006, 16h45

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