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] pb variable (depuis un xml extérieur)


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut [xslt] pb variable (depuis un xml extérieur)
    Bonsoir,

    J'ai un petit problème... je débute

    Le second : je voudrais afficher le nom d'un pays en fonction de son code. Voici un extrait de mon xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Country>
    	<AD>ANDORRE</AD>
    	<AE>EMIRATS ARABES UNIS</AE>
    	<AF>AFGHANISTAN</AF>
                 <FR>FRANCE</FR>
    </Country>
    Voici mon code :
    <xsl:variable name="code"><xsl:value-of
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select="CodePaysNR" /></xsl:variable>
               <xsl:variable name="path"><xsl:value-of select="concat('document(', $pays, ')/Country/', $code )"/></xsl:variable>
               <xsl:variable name="contenu" select="$path"/>             
               <xsl:value-of select="$contenu" />
    Au lieu d'avoir mon joli pays, j'ai le path

    SOS !!!

    Je veux faire tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document($pays)/Country/FR" />
    qui affiche FRANCE bien gentiment mais avec la variable $code qui tient bien le FR !!!

    mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document($pays)/Country/$code" />
    ne marche pas :-(

    Quelqu'un voit?

    Merci à vous,

    Virginie

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je vous invite à essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document($pays)/Country/*[name()=$code]" />
    Mon avis est que le XML d'entrée devrait plutôt avoir une structure telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <countries>
     <country id="AD" label="ANDORRE"/>
     <country id="AE" label="EMIRATS ARABES UNIS"/>
     ...
    </countries>
    de manière à ne pas avoir des données comme noms d'éléments
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Super!!!!!!!!!!!!!!!

    Ceci contourne parfaitement mon pb (sachant que j'ai la main sur le xml).

    Merci bcp pour cette inspiration de 7h16 !! LOL

    Merciiiiii,

    NiniE

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Olala... si tu es là j'aurais encore besoin d'un coup de pouce.

    Je n'arrive pas à mettre en place la condition de test...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document($pays)/Country/*[name()=$code]" />
    Ce code ne fonctionne pas ...

  5. #5
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Avec quel XML ? Le premier (celui avec les codes en tant que nom d'élément) ou celui que je proposais ?
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  6. #6
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Avec le votre. J'ai même essayé le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Countries>
    	<Country id="AE">EMIRATS ARABES UNIS</Country>
    ...
    </Countries>
    Je bloque... merci beaucoup de votre aide

  7. #7
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Avec celui que j'ai proposé il faut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document($pays)/countries/country[@id=$code]/@label" />
    Je préfère l'utilisation d'un attribut label car il ne s'agit pas d'une valeur susceptible d'être elle-même décomposée en sous-éléments par la suite...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  8. #8
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Super ! merci bcp

    Puis-je me permettre de te demander si tu as une doc ou un tuto à me conseiller? Tu constates que j'en ai besoin

    Bonne journée Alain,

    NiniE

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

Discussions similaires

  1. Affectation d'une variable depuis l'extérieur du script
    Par johannis dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 13/04/2012, 13h46
  2. [XSLT][Javascript] recup/modif xsl:variable depuis javascript
    Par hjn31 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/09/2009, 10h25
  3. Réponses: 5
    Dernier message: 08/09/2005, 20h33
  4. [XSLT]select sur plusieur documents XML
    Par jesus144 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 15/06/2005, 10h56
  5. [XSLT] les variables???
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 09/08/2002, 16h17

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