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 :

[XML][XSLT] Débutant {Probléme avec For-each-group}


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut [XML][XSLT] Débutant {Probléme avec For-each-group}
    Bonjours,
    J'ai un petit souci avec un For-each-group, mais, je ne trouve pas grand chose sur le net, alors je vous demande votre aide...
    (J'ai un fichier XML qui répertori des documents, en voici un extrès :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="Test.xslt"?>
    <root>
       <sites>
          <Titre>Programmation Objet avec Java</Titre>
          <DateParution>2002-09-01</DateParution>
          <Resume>Manuel destiné aux étudiants désireux d'être introduits aux concepts qui forment la base de la philisophie objet</Resume>
          <Format>pdf</Format>
          <MotCle>
             <Mot>programation</Mot>
             <Mot>langage</Mot>
             <Mot>objet</Mot>
             <Mot>java</Mot>
             <Mot>héritage</Mot>
          </MotCle>
       </sites>
       <sites>
          <Titre>Le langage SQL</Titre>
          <DateParution>2000-05-23</DateParution>
          <Resume>Manuel expliquant le langage SQL</Resume>
          <Format>html</Format>
          <MotCle>
             <Mot>langage</Mot>
             <Mot>SQL</Mot>
             <Mot>base</Mot>
             <Mot>données</Mot>
             <Mot>requete</Mot>
          </MotCle>
        </sites>
    </root>

    En fait, je veux faire un doc html qui répertorie tous les mots clé disponible (Mais qu'une fois, et comme on le voit dans mon exemple, il y a deux fois le mot language. Dans le 1er doc et dans le deuxiéme...)

    Donc, j'ai vu qu'il fallait utilisé le for-each-group....

    Mais, je n'ai pas trop compris comment car dans tous mes exemple que j'ai trouvé sur le net, il utilisé des attributs.....

    J'ai fait des test, mais, je n'y arrive pas.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl&#58;stylesheet version="2.0" xmlns&#58;xsl="http&#58;//www.w3.org/1999/XSL/Transform">
     
    <xsl&#58;template match="/">
         <html><xsl&#58;apply-templates/></html>
    </xsl&#58;template>
     
    <xsl&#58;for-each-group select="root/sites" group-by="Mot">
         <xsl&#58;value-of select="Mot"/>
    </xsl&#58;for-each-group>
     
    </xsl&#58;stylesheet>

    MERCI DE VOTRE AIDE !!!!!!

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Perso je ne connait pas cette élément for-each-group!

    Mais ce que je sais par contre c'est qu'il fait partie de XSLT 2.0 et non de la 1.0!

    Il te faudra trouver un parseur qui fait du XSLT 2.0 (moi je n'en connais pas!)!

    Je sais pas si tu veux continuer dans ce chemin mais sache que XSLT 2.0 n'a pas encore passé la recommendation W3C!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut
    oui, je suis au courant.... Et je veux toujours le faire...

    Je sais pas si certain l'on déjà fait et pourrais m'aider....???

    MERCI
    D'avance

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Juste pour savoir quelle parseur utilises-tu car il est possible que ton for-each-group ne soit pas implémenté par ton parseur?
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par virgul
    Salut,

    Juste pour savoir quelle parseur utilises-tu car il est possible que ton for-each-group ne soit pas implémenté par ton parseur?
    Altova XML Spy

  6. #6
    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
    for-each-group est du xslt 2.0, comme indiqué dans le stylesheet, c'est pour ca que tu ne le connais pas .Il n'y a que la version de xmlspy 2005 qui le supporte (et quelques autres parseurs bien sur mais pas la majorité).
    Je me demande ou tu as trouvé cet exemple

    syntaxe et xpath mauvais
    for-each-group dans le template et le chemin est MotCle/Mot car mot n'est pas fils de sites.

    Par contre le reste du code est assez etrange et je n'en vois pas l'inetret meme d'initiation (resultat trop complexe)

    Tuvoulais faire quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <xsl&#58;stylesheet version="2.0" xmlns&#58;xsl="http&#58;//www.w3.org/1999/XSL/Transform"> 
     
    <xsl&#58;template match="/"> 
         <html>
         <xsl&#58;for-each-group select="root/sites"  group-by="MotCle/Mot"> 
            <xsl&#58;value-of select="MotCle/Mot"/> 
    </xsl&#58;for-each-group> 
    </html> 
    </xsl&#58;template> 
     
     
    </xsl&#58;stylesheet>

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut
    Salut, aprés beaucoup de recherche j'ai enfin trouver, comment l'utiliser....
    Pour info pour les autres, je met mon code :
    Cela marche avec les attribut :

    Mon 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
    23
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="test.xslt"?>
    <root>
    <sites>
        <Titre>Programmation Objet avec Java</Titre>
        <DateParution>2002-09-01</DateParution>
       <Resume>Manuel destiné aux étudiants désireux d'être introduits aux concepts qui forment la base de la philisophie objet.</Resume>
       <MotCle Mot="Programation"/>
       <MotCle Mot="java"/>
       <MotCle Mot="Objet"/>-->
    </sites>
     
    <sites>
       <Titre>Le langage SQL</Titre>
       <DateParution>2000-05-23</DateParution>
       <Resume>Manuel expliquant le langage SQL.</Resume>
       <MotCle Mot="SQL"/>
       <MotCle Mot="Programation"/>
       <MotCle Mot="Base"/>
       <MotCle Mot="Données"/>
    </sites>
    </root>
    Mon XSLT
    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
    23
    24
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl&#58;stylesheet version="2.0" xmlns&#58;xsl="http&#58;//www.w3.org/1999/XSL/Transform">
    <xsl&#58;template match="/">
    <xsl&#58;apply-templates select="*"/>
    </xsl&#58;template>
     
    <xsl&#58;template match="root">
     
    <xsl&#58;for-each-group select="sites/MotCle" group-by="@Mot">
     
    <!-- On recupere le mot cle dans une variable -->
    <xsl&#58;variable name="unmot">
    <xsl&#58;value-of select="@Mot"/>
    </xsl&#58;variable>
     
    <!--On affiche le lien-->
    <li>
    <xsl&#58;value-of select="$unmot"/>
    </li>
     
    </xsl&#58;for-each-group>
    </xsl&#58;template>
    </xsl&#58;stylesheet>
    AINSI, On affiche qu'une fois le mot (meme s'il est répertorier dans plusieur document !!!!

    Voila,

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

Discussions similaires

  1. [XSLT] problème avec for-each
    Par aziziti dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/06/2007, 11h23
  2. [XML/XSL]problème avec for-each
    Par mavina dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/06/2006, 16h28
  3. [xsl] Problème avec for-each
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/03/2006, 12h28
  4. [XSLT]problème avec for-each incompréhensible
    Par trotters213 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/02/2006, 11h31
  5. [VB.NET] Problème avec For Each...
    Par cyrcroix dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/06/2005, 11h49

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