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 :

[XPATH] Prédicat + ends-with


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut [XPATH] Prédicat + ends-with
    Bonjour,

    J'utilise actuellement, pour une affectation à une variable, l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:value-of select=
    "count(parameter[@status != 'same']/enum/choice) 
    + count(parameter[@status != 'same' and @type != 'ENUM'])" />
    Dans le deuxième count(), j'aimerais rajouter une condition sur la valeur de l'attribut @type : je veux également exclure du comptage les attributs @type dont la valeur se termine par ENUM. En effet, ce cas est déjà traité dans le premier count() (si la valeur de l'attribut se termine par ENUM, cet élément contient en effet /enum/choice...).

    Il existe la fonction XPath ends-with(), mais il semble que ces fonctions ne soient pas utilisables dans des prédicats.

    Voici ce que j'avais essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:value-of select = "count(parameter[@status != 'same']/enum/choice) +
    count(parameter[@status != 'same' and @type != 'ENUM' and ends-with(@type,'ENUM')])" />
    Et voici un exemple d'élément pour lequel j'ai besoin de ce traitement (je veux simplement qu'il soit triaté comme si son type était simplement "ENUM") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            <parameter name="AA_filter" type="INT|ENUM"
     default="9|gaussian" status="modified">
              <enum status="New">
                <choice value="box" status="New" />
                .....
              </enum>
            </parameter>
    Comment faire ?

    Merci.

  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,

    Citation Envoyé par oodini Voir le message
    je veux également exclure du comptage les attributs @type dont la valeur se termine par ENUM.
    Selon cet énoncé il faut inverser la condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...and not(ends-with(@type,'ENUM'))]
    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

Discussions similaires

  1. [XPATH] utilisation de la fonction ends-with()
    Par TheNikos dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 06/04/2010, 14h24
  2. Réponses: 4
    Dernier message: 16/02/2007, 17h14
  3. [XPath][MSXML] starts-with renvoie méthode inconnue
    Par MrMaze dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/02/2007, 10h37
  4. [VBA-E] Limitation des With...End With
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/10/2006, 15h59
  5. [VB.NET] With...End With et performances ?
    Par Dnx dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2005, 12h37

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