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 :

Fusion de balise XML


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut Fusion de balise XML
    Bonjour,

    Je voudrais savoir si il est possible de fusionner des balises XML à l'aide d'une transformation XSL.
    Pour illustrer ma demande, voici un exemple

    J'ai quelque chose de ce genre :
    Code XML source : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <root>
        <foo name="1">
            <bar value="test11"/>
        </foo>
        <foo name="1">
            <bar value="test12"/>
        </foo>
        <foo name="2">
            <bar value="test21"/>
        </foo>
        <foo name="2">
            <bar value="test22"/>
        </foo>
    </root>

    pour obtenir ceci :
    Code XML cible : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <root>
        <foo name="1">
            <bar value="test11"/>
            <bar value="test12"/>
        </foo>
        <foo name="2">
            <bar value="test21"/>
            <bar value="test22"/>
        </foo>
    </root>

    Merci pour vos idée

  2. #2
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    les valeurs de l'attribut name de la balise foo sont finies ?

  3. #3
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Citation Envoyé par laurentibus Voir le message
    les valeurs de l'attribut name de la balise foo sont finies ?
    non

    Edit: Autre info : les balises foo ne sont pas ordonées. En fait, le code XML source resemble plus a ceci :
    Code XML source : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <root>
        <foo name="1">
            <bar value="test11"/>
        </foo>
        <foo name="2">
            <bar value="test21"/>
        </foo>
        <foo name="1">
            <bar value="test12"/>
        </foo>
        <foo name="2">
            <bar value="test22"/>
        </foo>
    </root>

    Derniere chose. Dans mon cas, les balises qui ont le meme attribut name vont toujours par 2. Par contre, j'aurai aimé une solution assez générique si cela est possible.

  4. #4
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ok as tu vu la Faq ???
    ca regroupe selon le nom de balise, mais je pense qu on peux arriver a regrouper selon la valeur d'un attribut .... en ne modifiant pas grand chose ..

    tiens nous au jus

  5. #5
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    J'ai enfin trouvé.
    Je dois bien avouer que la FAQ m'a bien aidé même si au départ j'ai pensé que la solution proposé été éloigner de ce que je voulais.

    En me creusant la tête, voici la solution que j'ai trouvé (peut être a rajouter a la FAQ a coté de l'autre solution)
    Code XSL : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
       <xsl:key name="regrouper" match="foo" use="@name"/>
       <xsl:template match="root">
          <root>
             <xsl:apply-templates select="foo[generate-id(.)=generate-id(key('regrouper',@name)[1])]"/>
          </root>
       </xsl:template>
       <xsl:template match="foo">
          <foo name="{@name}">
             <xsl:apply-templates select="//bar[../@name=current()/@name]"/>
          </foo>
       </xsl:template>
       <xsl:template match="bar">
          <xsl:copy-of select="."/>
       </xsl:template>
    </xsl:stylesheet>

    Pour finir : Merci laurentibus pour ton aide

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

Discussions similaires

  1. Fusion de balise XML
    Par Mobius dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 20/08/2008, 09h53
  2. [Configuration] Confusion de balises XML / PHP
    Par teto dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 10/09/2005, 13h40
  3. [XSLT] Fusion de fichier XML ???
    Par webtheque dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/03/2005, 20h13
  4. [JDOM] données un attribut à une balise xml
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 09/07/2004, 15h54
  5. [Balise XML] Comment récupérer le contenu entre 2 balise?
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/03/2004, 16h36

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