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] <xsl:if> test sur plusieurs condition


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut [XSLT] <xsl:if> test sur plusieurs condition
    Bonjour, je n'arrive pas à faire un test sur plusieurs conditions,
    j'obtiens le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:if test="not(test1) & not(test2)"> 
    ------------------------------^
    N'y a-t-il pas un moyen d'inclure les deux conditions dans la même clause?
    Cela fonctionne en embriquant deux clause mais c'est pas génial.

    Je voudrais savoir égallement s'il y avait un moyen pour comparer un élément à une liste, comme en SQL: IN, ex: WHERE x IN (1,2,3)

    Y a t'il un autre moyen que not(noeud/*) pour tester si un noeud est vide?

    Qq a-t'il une idée.

    Merci.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    en fait, là ton XSL est mal formé : tu utilises le symbole & sans utiliser d'entitée, ce qui est interdit, puisque ça rend le XML mal formé...

    essaie de remplacer le & par &amp; ou plus vraissemblablement de mettre "and"

  3. #3
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Pour tester si un noeud est vide tu peux utiliser ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xslt:if test="normalize-space(.)"></xslt:if>

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    ok merci beaucoup Swoög, j'étais cplt à côté...

    Merci Drizzt pour normalize-space(.), mais je crois que je préfère encore
    not(noeud/*) qui parle plus: absence de d'élément dans le noeud.

    N'y a-t-il pas de: empty(noeud) ou qq chose ds le genre.


    Merci.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    pourtant dans:
    Conditions (XPATH)
    http://haypo.developpez.com/tutoriel...rammation/#LIV

    il est indiqué que l'on peut utiliser la l'opération "a & b"

    qu'est-ce que j'ai loupé?

    Merci.

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    comme je te l'ai dit, le problème ne vient pas du fait de la syntaxe "a & b"
    qui est correcte en soit, mais du caractère &, haypo a oublié de le transformer en &amp;

    parce que si tu mets un & qui ne commence pas une entitée dans un document XML, ton document est alors automatiquement mal formé, donc inutilisable...

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Ok je te remercie Swoög.

    Et pour le IN (comme en SQL) as-tu une idée?

    Merci.

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    en jouant sur contains peut-être : http://www.w3.org/TR/xpath#function-contains

  9. #9
    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 : 47
    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
    et utiliser un and au lieu d'& amp; serait encore plus simple.

    Utiliser le in au lieu du contain parait ici bien compliqué

    Le IN est automatique en xslt SI l'ensemble est un xpath.


    ainsi test="3=/R/test" est vrai si un des /R/test est egal à 3.
    Par contre si ton ensemble de valeur est a cherche hors de ton xml , tu devras utiliser des and

Discussions similaires

  1. [AC-2003] Problème de test sur plusieurs champs dans une table
    Par Cavart dans le forum Access
    Réponses: 1
    Dernier message: 23/11/2011, 14h51
  2. [XL-2007] Test sur plusieurs cellules
    Par catetesse dans le forum Excel
    Réponses: 6
    Dernier message: 21/11/2011, 15h31
  3. [XSLT] Test sur plusieurs valeur
    Par mamax29 dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 03/12/2010, 17h35
  4. unittest : lancer des test sur plusieurs fichiers
    Par rambc dans le forum Général Python
    Réponses: 8
    Dernier message: 30/10/2010, 11h25
  5. [AC-2007] Test sur plusieurs enregistrements d'un sous-formulaire
    Par Crachover dans le forum IHM
    Réponses: 4
    Dernier message: 18/01/2010, 16h38

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