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 :

Typologie d'une valeur Attribut


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut Typologie d'une valeur Attribut
    Bonjour,

    je souhaite parcourir ce bout d'xml et retourner le type (numerique ou chaine ) de la valeur de l'attribut ref avec xpath est - ce possible ? si oui quel expression utiliser ? type(@ref)=number or type(@ref)=string ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <supplier>
    <abbreviation>TEST</abbreviation>
    <label>
    <long-label>TESTEUR (Refs longues)</long-label>
    </label>
    <classification-list>
    <classification dictionary="IATE:supplier" ref="TEST"/>
    <classification ref="1024" source="iate"/>
    </classification-list>
    </supplier>

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    En XML il n'y a de notion de typage que si un schéma de validation est lié au document. Sinon tout est string.
    Et même quand il y a un typage dû à un schéma indiqué, XPath ne propose pas de moyen de "demander" le type d'une valeur.

    Mais tu peux t'en sortir facilement en vérifiant si ton attribut contient autre chose que des chiffres (oui => string, non => nombre.)
    Ou simplement avec le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:choice>
      <xsl:test when="number(@ref) = @ref">
        <!-- La conversion en nombre marche : c'est un nombre -->
      </xsl:test>
      <xsl:otherwise>
        <!-- La conversion en nombre échoue : c'est une string -->
      </xsl:otherwise>
    </xsl:choice>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut
    Au fait je voudrais parcourir ce xml et afficher les valeurs des attributs de classification pour cela je cherche l'expression xpath j'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    supplier/classification-list/classification/@ref[. = *]
    mais cela ne fonctionne pas.

    Mais lorsque je met ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    supplier/classification-list/classification/@ref
    cela renvoie qu'une valeur de ref l'apla 'TEST' mais pas les deux 'TEST' et '1024'.

    Avez vous une expression à me suggérer

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    L'expression est parfaite pour sélectionner les deux.

    C'est juste le truc avec lequel tu exécutes l'expression, qui ne garde que le premier résultat et jette le reste. Comme tu nous as pas dit ce que tu utilises, on va pas deviner...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut
    L'expression je l'utilise dans Talend avec le xpath de talend

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut Expression XPATH
    Bonjour

    Voila je voudrais savoir exprimer ceci avec xpath :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <test-list>
          <test ref="toto" dictionnary="table"/>
          <test ref="2014" source="toble"/>
    </test-list>
    Récupérer la position du noeud dont la valeur de l'attribut ref n'est pas un string mais du numérique.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Juste pour rappel, un nombre c'est aussi un string. Le caractère '2' suivi du caractère '0' suivi de '1' suivi de '4'.

    Sinon, pour obtenir une position, le plus simple c'est de compter combien il y a d'éléments devant lui.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut
    merci pour la réponse

Discussions similaires

  1. [XSLT] Comment attribuer une valeur à un attribut?
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/10/2006, 15h12
  2. Réponses: 4
    Dernier message: 01/06/2006, 14h58
  3. [PEAR][HTML_QuickForm] Attribution d'une valeur par défaut à un select
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 24/02/2006, 08h08
  4. Réponses: 4
    Dernier message: 12/10/2005, 13h13
  5. Réponses: 2
    Dernier message: 07/07/2005, 18h11

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