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 :

probleme dans une structure xsl


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut probleme dans une structure xsl
    Bonjour,

    Je souhaiterais afficher sur un site web une liste déroulante dynamique. Le contenu de cette liste est donc stocké dans un fichier xml. J'utilise xslt pour l'afficher sur le site. Le code d'affichage fonctionne parfaitement, mais j'ai un problème avec la structure de mon xsl :

    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
    17
    18
    19
    <div style="margin-left:40px"><?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <xsl:element name="select">
    <xsl:for-each select="voitures/Marque">
    <xsl:value-of select="@nom" />
    <xsl:for-each select="Modele">
    <xsl:text>/</xsl:text>
    <xsl:value-of select="@nom" />
    <xsl:for-each select="Version">
    <xsl:element name="option">
    <xsl:value-of select="@nom" />
    </xsl:element>
    </xsl:for-each>
    </xsl:for-each>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet></div>
    D'où vient le problème ? (je suis novice en xslt)

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    J'oubliais le xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <voitures>
    	<Marque nom="marque">
    	   <Modele nom="modele">
                    <Version nom="nom1">
    		</Version> 
    		<Version nom="nom2"> 
    		</Version>
    	   </Modele>	
    	</Marque>			
    </voitures>
    Je veux afficher la liste sous la forme :
    Marque/Modele (non cliquable)
    nom1
    nom2

  3. #3
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Déjà mets ton code entre balise code (le bouton #) parce que c'est illisible.

    Sinon le XSL est un langage principalement récursif. Utiliser des for-each lorsque que ce n'est pas absolument nécessaire est une mauvaise habitude. Typiquement dans ton cas, tu devrais passer par des templates.

    De plus, je te conseille de créer tes éléments XML directement, sans passer par <xsl:element />, c'est beaucoup plus lisible et moins verbeux. Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select>
      <option><xsl:value-of select="@nom" /></option>
    </select>
    NB : c'est un exemple de code, ce n'est pas forcément ce que tu dois écrire dans ton cas.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je sais pas trop comment tu intègres ça dans ton site, mais je vais te faire confiance et penser que tu sais ce que tu fais.

    Ton machin, là il génère le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select>marque/modele
      <option>nom1</option>
      <option>nom2</option>
      marque/modele2
      <option>nom3</option>
      <option>nom4</option>
    </select>
    On voit bien que mettre du texte comme ça dans les <select> c'est pas du HTML qui veut dire quelque chose.
    Mais je ne sais pas trop quel HTML tu voudrais mettre à la place.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    Merci pour vos réponses
    Oui en effet. Je voudrais mettre "Marque/modele" comme cela "<optgroup label='Marque/modele'>" Mais je ne connais pas la syntaxe xslt pour faire cela.

    Merci

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Y'a pas de syntaxe particulière t'as juste à écrire ta balise comme tu l'as écrite ici.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    Oui mais il faut que je mette la Marque et le modele or :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <optgroup label=<xsl:value-of select="@nom" />>
    ne fonctionne pas

    Merci

Discussions similaires

  1. probleme d'une structure dans une fonction
    Par saadaoui_1 dans le forum C++
    Réponses: 3
    Dernier message: 24/04/2014, 14h50
  2. Probleme avec les '[ ]' et les '*' dans une structure
    Par lassault1 dans le forum Débuter
    Réponses: 18
    Dernier message: 11/04/2010, 13h38
  3. Probleme structure dans une structure
    Par ba1boun2 dans le forum Débuter
    Réponses: 5
    Dernier message: 30/12/2008, 01h03
  4. problem de chaine de caractere dans une structure
    Par lenetfm dans le forum Débuter
    Réponses: 11
    Dernier message: 18/04/2008, 08h25
  5. Réponses: 12
    Dernier message: 25/04/2007, 11h36

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