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] Regrouper des éléments


Sujet :

XSL/XSLT/XPATH XML

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

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 5
    Points
    5
    Par défaut [XSLT] Regrouper des éléments
    Bonjour à tous,

    J'ai un problème qui doit être assez simple mais je reste bloqué depuis un moment

    Je voudrais, à partir de quelque-chose qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <livre>
        <Article>
            <ident_auteur>Georges
<i>avec la collaboration de Antoine</i></ident_auteur>
            <ident_tit>La vie de Georges</ident_tit>
        <ident_isbn>9781288564897</ident_isbn>
            <ident_trad>Traduit du Russe</ident_trad>
        </Article>
        <ident_ftit>La vie de Georges</ident_ftit>
     <!-- suit tout le reste -->
    </livre>
    Pouvoir regrouper les éléments tels qu'ils sont dans un ordre différent, avec un englobant <ident> et supprimant le préfixe "ident_" afin d'arriver à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <livre>
    <ident>
    <ftit>La vie de Georges</ftit>
    <auteur>Georges
<i>avec la collaboration de Antoine</i></auteur>
    <tit>La vie de Georges</tit>
    <trad>Traduit du Russe</trad>
    <isbn>9781288564897</isbn>
    <ident>
    <!-- suit tout le reste -->
    </livre>
    Ça devrait pas être trop compliqué mais j'y arrive pas.

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    À première vue il s'agit simplement de définir un template sur <livre>, qui se charge de créer un élément <livre> et de lui créer les éléments fils voulus, en sélectionnant l'information adéquate à chaque fois.

    As-tu fais des tutoriels, et qu'as-tu essayé ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 5
    Points
    5
    Par défaut Regrouper les éléments
    Ben… pour le moment je patouille avec des essais genre ç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
     <xsl:template match="livre">
            <ident>
                <tit>
                    <xsl:value-of select="ident_tit"/>
                </tit>
                <auteur>
            <xsl:value-of select="ident_auteur"/>
            </auteur>
                <isbn>
                    <xsl:value-of select="ident_isbn"/>
                </isbn>
                <trad>
                    <xsl:value-of select="ident_trad"/>
                </trad>
                <ftit>
                    <xsl:value-of select="ident_ftit"/>
                </ftit>
            </ident>
            <xsl:apply-templates/>
        </xsl:template>
    Qui ne donne rien de bon et parallèlement je cherche dans les tutoriaux
    Pour moi c'est un peu coriace parce que je débute alors si tu as juste une piste ce serait chouette. Effectivement, comme tu le décris ça a l'air simple

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Hello,
    Tu ne respectes pas la hierachie de ton document original.
    Par exemple : "ident_auteur" n'est pas enfant direct de "livre", il y a l'élément "Auteur" entre le deux.
    Il faut donc écrire pour celui la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="Auteur/ident_auteur"/>
    Ce qui renverra bien le text contenu par "ident_auteur".
    Mais, ce qui est contenu par d'autre élément (les <i> par exemple) ne sera pas retourné car c'est un nouvel élément fils qui a sont propre contenu.
    Dans ce cas là, il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:copy-of select="Auteur/ident_auteur/*"/>
    Qui copie tous les sous-noeud de "ident_auteur" quel que soit leur type (le texte est considéré comme un type de noeud).
    Enfin, je dis ça de tête hein.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 5
    Points
    5
    Par défaut Regrouper des éléments
    Merci pour vos réponses

    Je me met dare-dare sur les tutoriels


Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2009, 15h01
  2. [XSLT] Regrouper des données par date
    Par sofuzion dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/02/2009, 11h07
  3. regrouper des éléments page/page
    Par TOMITOMAS dans le forum IHM
    Réponses: 6
    Dernier message: 05/09/2007, 13h51
  4. [XSLT] regrouper des noeuds identiques
    Par DelphLaga dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/11/2006, 17h07
  5. [xslt] Suppression des éléments sans contenu.
    Par dibbouk dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/06/2005, 17h17

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