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 :

test valeur d'une balise?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut test valeur d'une balise?
    Bonjour,

    Je voudrais tester la valeur d'une balise.. En gros je veux tester si il y a quelque chose dans une balise ou pas...
    exemple :
    dans le xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <item><title>bonjour</title></item>
    <item><title></title></item>
    <item><title /></item>
    en XSL je teste comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:variable name="title" select="title"/>
    <xsl:if test='string-length($title) =0'>
    et ça ne marche pas... il n'execute pas ce qu'il y a dans le if pour le 3ème item...

    ya t-il un autre moyen?

    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 : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test='string-length(string(./title)) = 0'>
    d'après la doc ça devrait fonctionner comme tu le souhaites : http://www.w3.org/TR/xpath#node-tests
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    je viens de tester ton code mais ça ne change rien...

    il n'execute pas le if...

    pourrais tu m'expliquer un peu ta solution que je vois si elle s'adapte bien a mon cas? pourquoi ./title ??

    désolé si c'est dans la doc... mais moi et l'anglais....

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    ça dépend du noeud contextuel, bref de la où tu te trouves dans ton arbre...

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ./title spécifie simplement que c'est la balise title de l'élément que tu es en train de traiter... c'est à peu de choses près équivalent à select="title" mais c'est plus précis...

    peux-tu vérifier les valeurs du title et de string-length avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    title : <xsl:value-of select="string(./title)" />
    title length : <xsl:value-of select="string-length(string(./title))" />
    en théorie l'appel à string est pas nécessaire... mais bon ^^ au cas où
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Ok merci bcp!

    En fait je me suis rendu compte en affichant le title et la longueur... que quand il trouve pas de title il met 1 en valeur de length.... pas 0... me demandé pas pourquoi?!!

    donc mon test était pas bon à la base...

    Merki!

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

Discussions similaires

  1. modifier la valeur d'une balise
    Par gentil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/04/2007, 17h15
  2. [DTD]Forcer une valeur d'une balise
    Par mamiberkof dans le forum Valider
    Réponses: 1
    Dernier message: 22/01/2007, 22h26
  3. [langage] Sélectionner une valeur dans une balise
    Par Melvine dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2006, 17h57
  4. Récuperer la valeur d'une balise html
    Par spynux dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 28/02/2006, 09h40
  5. recupere valeur d'une balise select
    Par naourass dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/11/2005, 10h18

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