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] Child par expression régulière


Sujet :

XSL/XSLT/XPATH XML

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

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 19
    Points
    19
    Par défaut [XSLT] Child par expression régulière
    Voilà notre problème :
    On veut recuperer un fils via une expression régulière. En fait on a des noeuds appelés "choixradio" et "choixcase", et on voudrait recuperer leur attribut score.

    Notre xml ressemble à ça :
    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
    <question>
    			<commentaire> La réponse était r3 </commentaire>
    			<libelle> Intutlé </libelle>
    			<choixradio score="-5"> r1 </choixradio>
    			<choixradio score="-10"> r2 </choixradio>
    			<choixradio score="5"> r3 </choixradio>
    			<choixradio score="-5"> r4 </choixradio>
    	</question>
    <question>
    			<libelle>Intitulé</libelle>
    			<choixcase score="20"> r1 </choixcase>
    			<choixcase score="5"> r2 </choixcase>
    			<choixcase score="-10"> r3 </choixcase>
    			<choixcase score="5"> r4 </choixcase>
    			<choixcase score="-10"> r5 </choixcase>
    	</question>
    Au début on avait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="theme/question[$num_question]/choixradio[$num_reponse]/@score"/>
    qui marcahit seulement pour les choix radio.

    On a voulu généraliser avec une expression régulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="theme/question[$num_question]/*[fn:matches(fn:node-name(.),'choix.*') and $num_reponse]/@score"/>
    mais ca ne marche pas...

    Des idées, merci par avance.

  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,

    pas besoin d'expressions régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="theme/question[$num_question]/*[starts-with(name(), 'choix')][$num_reponse]/@score"/>

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

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Nickel, ca marche.
    Merci.

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

Discussions similaires

  1. recherche par expression régulière
    Par guiyomh dans le forum C++
    Réponses: 2
    Dernier message: 29/06/2008, 12h14
  2. [RegEx] Recherche sur mots-clés par expression régulière
    Par zaknaou dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2008, 14h04
  3. [RegEx] Remplacements par expressions régulières
    Par marielaure2805 dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2008, 11h53
  4. Extraction de couleur CSS par expression régulière
    Par frochard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/11/2007, 16h39
  5. [RegEx] Extraction d'une partie d'une URL par expression régulière
    Par Maxbenji dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2007, 22h26

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