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 :

[XSL] Comment faire pour trier de cette façon ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [XSL] Comment faire pour trier de cette façon ?
    Bonjour, premier post donc je vais essayer de m'expliquer clairement.



    Voici un exemple de code XML :

    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
    21
    22
     
    <marques size="5">
         <marque>
           <libellecomp>LANGUE</libellecomp>
           <libelle>AN</libelle>
         </marque>
         <marque>
            <libellecomp>LANGUE</libellecomp>
            <libelle>FR</libelle>
         </marque>
         <marque>
            <libellecomp>SPORT</libellecomp>
            <libelle>SNOW</libelle>
         </marque>
         <marque>
            <libellecomp>SPORT</libellecomp>
            <libelle>BASKET</libelle>
         </marque>
         <marque>
            <libellecomp>CHOCOLAT</libellecomp>
            <libelle>BLANC</libelle>
         </marque>

    Je voudrai qu'avec un traitement XSL j'arrive à obtenir le résulat suivant :

    • LANGUE :
      - AN
      - FR

      SPORT :
      - SNOW
      - BASKET

      CHOCOLAT :
      - BLANC




    Problème (enfin je pense) les éléments ne sont pas forcéments dans l'ordre. Je pense qu'il faut peut être faire du récursif mais je n'ais pas réussit


    MERCI DE VOTRE AIDE

    Shupa - Qui débute en XML/XSL

  2. #2
    Membre confirmé Avatar de Perceval
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2003
    Messages : 355
    Points : 464
    Points
    464
    Par défaut
    ce que tu n'arrives pas à faire c'est de classer dans l'ordre que tu veux ?
    Save a tree... Eat a beaver

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Non en fait classé ça va je classe alphabétiquement.

    Ce que je cherche à faire c'est de grouper selon l'élément XML <libellecomp>.

  4. #4
    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,

    Pour regrouper des éléments il existe la méthode Muench, mise en oeuvre dans ce post : http://www.developpez.net/forums/vie...ight=regrouper
    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

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci j'ai réussit à faire ce que je voulais.
    Pour info voici le code final :

    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
    21
     
    <!-- parcours des marques DISTINCTES avec libellecomp -->
    <xsl:for-each select="//libellecomp[generate-id(.)=generate-id(key('id', .)[1])]">
        <!-- stockage du lib unqiue dans une variable -->
        <xsl:variable name="lib" select="."/>
        <!-- test si var recup n'est pas vide -->
        <xsl:if test="string-length($lib) != 0">
            <i><xsl:value-of select="$lib"/></i>
    	<br/>
    	<!-- parcours de tous les libelle de marque -->
    	<xsl:for-each select="//libelle">
    	    <!-- si le libellecomp vaut celui précédemment -->
    	    <xsl:if test="../libellecomp = $lib">
    	          <xsl:value-of select="."/>
    		 <br/>
    	    </xsl:if>
       	</xsl:for-each>
            <!-- Fin parcours de tous les libelle de marque -->
    	<br/>
        </xsl:if>
    </xsl:for-each>

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

Discussions similaires

  1. Comment faire pour qu'un lien executer cette commande
    Par pierrot10 dans le forum jQuery
    Réponses: 0
    Dernier message: 28/07/2013, 21h53
  2. Réponses: 5
    Dernier message: 11/10/2010, 09h16
  3. [E-07] Comment faire pour trier mes données?
    Par paff08 dans le forum Excel
    Réponses: 6
    Dernier message: 03/12/2008, 08h31
  4. [XsL/xpath]Comment faire pour éviter les doublons?
    Par BigBarbare dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/05/2007, 20h31
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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