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] probleme avec les doublons dans une liste deroulante


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [XSLT] probleme avec les doublons dans une liste deroulante
    [XSL XML]
    bonjour à tous le monde,
    Alors, à paritr d'un fichier xml j'ai realisé un formulaire à l'aide d'une feuille de style xsl generique (ne contient pas de nom de balise)
    ma question est comment on peut faire pour realiser l'unicité des valeurs des listes deroulantes du formulaire, car quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:template match="@*">
    <xsl:value-of select="." />
     </option>
    </xsl:template>
    j'ai toutes les attributs dans les liste. par exemple si j'ai une balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <balise type="a" no="2" prix="x">
    <balise type="a" no="2" prix="x">
    <balise type="b" no="d" prix="y">
    alors dans la liste deroulante qui a balise-type comme champ, j'ai 2 fois la valeur puis b, et la même chose pour nalise-no:2 fois le chiffre 2 ...

    je sais qu'il faut faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:for-each select="?">
    <xsl:sort select="?"/>
    </xsl:for-each>
    <xsl:apply-template="?"> 
    <xsl:sort select="?"/>
    </xsl:apply-template>
    sachant que je peux pas mettre un nom de balise ou d'attribut(generique)

    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    bonjour et bienvenu sur le forum, par contre paux tu expliquer plus clairement ton probleme ?

    par exemple cette phrase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alors dans la liste deroulante qui a balise-type comme champ, j'ai 2 fois la valeur puis b, et la même chose pour nalise-no:2 fois le chiffre 2 ...
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par valal
    bonjour et bienvenu sur le forum, par contre paux tu expliquer plus clairement ton probleme ?

    par exemple cette phrase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alors dans la liste deroulante qui a balise-type comme champ, j'ai 2 fois la valeur puis b, et la même chose pour nalise-no:2 fois le chiffre 2 ...

    Citation Envoyé par mikoo
    Merci valal pour ta reponse, je vais expliquer en étant plus clair:
    mon fichier 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
    17
    18
    19
    20
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <?xml-stylesheet href="analyse.xsl" type="text/xsl" ?> 
    <plan nature="Université ">
     
    	<batiment  numero="1">
     
    	  <salle  numero="1.1" type="amphithéâtre" capacite="120" /> 
    	  <salle  numero="1.2" type="amphithéâtre" capacite="120" />
    	  <salle  numero="1.3" type="amphithéâtre" capacite="120" />
    	  <salle  numero="1.4" type="TD" capacite="45"  />
    	</batiment>
     
    	<batiment  numero="2">
     
    	  <salle  numero="2.1" type="TP informatique" capacite="24" /> 
    	  <salle  numero="2.2" type="TP informatique" capacite="24" />
    	  <salle  numero="2.3" type="amphithéâtre" capacite="120" />
    	  <salle  numero="2.4" type="TD" capacite="45" />
    	</batiment>
    </plan>
    ma feuille de style doit générer dans un formulaire HTML une liste de déroulante par critère de recherche. suivant mon exemple, cela serai donc:
    -la liste des batiment par numero.
    -la liste des salle par numero.
    -la liste de type de salle.
    -la liste des capacités possibles.

    alors je suis arrivé à faire ça de manière générique, i,e sans utilisé les nom de balise, comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:template match="*[not(preceding::node()[name()=name(current())])]">
    ...
    pour dire n'importe quel noeud de type element dont le nom n'est pas celui d'un element dejà trité...
    alors quand j'ai créer le formulaire, j'ai 4 fois "amphithéâtre" dans la liste des types de salle, 4 fois "120"dans la liste des capacités...(en fait autant de fois que dans le fichier xml). car dans la fin de ma feuille de style j'ai mi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:template match="@*">
    <option>
    <xsl:value-of select="." />
    </option>
    j'espère que j'ai bien expliqué mon problème.

Discussions similaires

  1. [C# 2.0] Détecter les doublons dans une List<string>
    Par Rodie dans le forum Windows Forms
    Réponses: 36
    Dernier message: 30/03/2013, 15h21
  2. probleme avec les dates dans une requete
    Par obydissonn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/06/2008, 12h52
  3. Enlever les doublons dans une liste
    Par gefrey54 dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 14/09/2007, 17h46
  4. Réponses: 2
    Dernier message: 21/02/2007, 13h28
  5. Réponses: 2
    Dernier message: 10/10/2005, 02h25

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