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 :

[Debutant] trier et grouper


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 56
    Points
    56
    Par défaut [Debutant] trier et grouper
    Bonjour à tous,

    Je suis un debutant pour ce qui est de la manipulation xml/xslt.

    J'ai un fichier xml comme ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TOTO>
    <A id="tata" value="1" />
    <A id="tata" value="2" />
    <A id="coco" value="2" />
    <A id="tata" value="3" />
    </TOTO>
    et je voudrais avoir le resultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    coco
    2
    tata 
    1
    2
    3
    J'ai cherché avec la balise xslt:sort et je pense que j'y suis presque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <xsl:for-each select="TOTO/A"> 
    			<xsl:sort select="@id"/>  <br>               
    			<xsl:value-of select="@valeur"/>
                            <br/>
     </xsl:for-each>
    Le probleme c'est que je me retrouve avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    coco
    2
    tata
    1
    tata
    2
    tata
    3
    Merci d'avance pour vos conseils.

  2. #2
    Expert éminent

    Avatar de mlny84
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4 023
    Points : 8 107
    Points
    8 107
    Par défaut
    Bonjour,

    Pour éviter les doublons, il faut utiliser la méthode Muench.
    Bien que j'ai déjà utilisé cette méthode, je ne suis pas encore une experte, mais je me lance quand même pour t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <!--Au début de ton code -->
    <xsl:key name="keyId" match="TOTO/A" use="@id"/>
     
    <!--A l'endroit de ton for-each -->
    <xsl:for-each select="//A[generate-id() = generate-id(key('keyId', @role)[1])]">
    	<xsl:sort select="@id" />
    	<xsl:variable name="varId" select="@id" />
    	<xsl:value-of select="@id"/> <br/>
    	<xsl:for-each select="//A[@id=$varId]">
    		<xsl:sort select="@value" />
    		<xsl:value-of select="@value"/><br/>
    	</xsl:for-each>
    </xsl:for-each>

Discussions similaires

  1. Trier et grouper une Grid
    Par edblv dans le forum Ext JS / Sencha
    Réponses: 0
    Dernier message: 16/05/2014, 10h00
  2. Réponses: 1
    Dernier message: 16/01/2011, 20h25
  3. Réponses: 0
    Dernier message: 20/06/2008, 15h22
  4. [XSLT] trier et grouper des données
    Par kd dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 16/01/2007, 09h56

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