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]Regroupement par attribut.


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 9
    Points
    9
    Par défaut [XSLT]Regroupement par attribut.
    Bonjour à tous,

    J'ai le document xml suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Eau>
    	<riviere distance="500 m"/>
    	<lac distance="100 m"/>
    	<mer distance="200 m"/>
    	<etang distance="100 m"/>
    	<bassin distance="500 m"/>
    </Eau>
    Je voudrais regrouper les enfants du noeud Eau pour obtenir le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    100 m : lac, etang
    200 m : mer
    500 m : riviere, bassin
    Voici le début de mon fichier de transformation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:template match="/Eau">
    	<xsl:apply-templates select="riviere|lac|mer|etang|bassin"><xsl:sort select="@distance" /></xsl:apply-templates>
    </xsl:template>
     
    <xsl:template match="riviere|lac|mer|etang|bassin">
    ...
    </xsl:template>
    Mon idée était de trier les éléments par l'attribut distance et de regarder à la position -1 pour voir si la distance change ou pas.
    Le problème est que quand je suis dans mon deuxième template je ne sais pas comment obtenir le noeud précédent.
    Quelqu'un sert-il m'aider sur ce problème, ou existe-t-il une autre méthode pour arriver à mon fichier de sortie.

    Merci.

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Il suffit simplement d'adapter le code fournit dans la FAQ
    http://xml.developpez.com/faq/?page=3#xslt_regroup

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Effectivement j'avais bien vu cette question dans la faq avant de poser ma question mais j'ai pas réussi à adapter pour mon problème. Le problème vient du fait que dans l'exemple tous les élément à trier se nomme "a". EEt les miens ont tous un nom d'élément différent.

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    ils sont tous fils de eau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:key name="regrouper" match="Eau/*" use="@distance"/>
    etc....

    A toi d'adapter les reste du code, tu peux t'inspirer en + de ce sujet recent
    http://www.developpez.net/forums/sho...d.php?t=246303

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Ah oui j'avais pas pensé a prendre les enfants de cette façon.

    Merci beaucoup.

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

Discussions similaires

  1. [XSLT] Trier par attribut
    Par Bibi51 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/12/2010, 10h41
  2. [XSLT] Regroupement par id de balise XML
    Par aandre dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/12/2010, 13h05
  3. [XSLT] Regroupement d'attribut
    Par Yuripa dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 12/09/2010, 00h50
  4. [XSLT] Regroupement par paquet de N
    Par Gédéon dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/04/2008, 14h43
  5. [XSLT] Regroupement et tri d'un XML selon un attribut
    Par tatemilio2 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 25/01/2007, 11h18

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