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 :

XSL / découpage de balise


Sujet :

XSL/XSLT/XPATH XML

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

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 6
    Points
    6
    Par défaut XSL / découpage de balise
    Bonjour,

    Je débute avec les transformations XSL, et suis bloqué sur un problème qui est peut être en fait tout simple.
    J'ai un XML simple consititué d'un entête suivi d'un certain nombre d'éléments :

    <root>
    <entete attr1="val1" attr2="val2"/>
    <wrapper attr1="val1" attr2="val2">
    <element>
    ...
    </element>
    <element>
    ...
    </element>
    </wrapper>
    </root>

    Ma transformation est assez simple, je veux juste faire une série de wrappers ne contenant qu'un "element" :

    <root>
    <wrapper>
    <entete attr1="val1" attr2="val2"/>
    <element>
    ....
    </element>
    </wrapper>
    <wrapper>
    <entete attr1="val1" attr2="val2"/>
    <element>
    ....
    </element>
    </wrapper>
    </root>

    J'ai pour l'instant un simple for-each sur les "element" qui contient un <xsl:copy-of select="current()"/>. Par contre, là où je bloque est sur le wrapper : si je met un copy-of je récupère tout le contenu, donc tous les fils element.
    Il y a bien la solution d'enregistrer dans une variable l'ensemble des attributs et de regénérer "à la main" les balises wrapper et entete, mais ça ne me semble pas très "propre"...
    Il doit y avoir une solution simple, quelqu'un a-t-il une idée ?

    Merci pour votre aide !

    Florent

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Salut floub,

    si j'ai bien compris tu veux qu'une balise wapper entoure chaque noeud "element".

    Ce que tu pourrais faire cela serait d'appeler dans ton un "for-each" un template "wrapper" dans laquelle tu passerais en apparaître ton noeud élément en entier et ta template "wrapper" s'oocupe d'entourer la balise element par un noeud "wrapper".

    Est-ce cela répond à ta question!

    Cédric

  3. #3
    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
    J'en doute, puisqu'il parlait de ne pas vouloir "régénérer les attributs à la main."

    À la rigueur, on peut copier l'élément <wrapper> avec son nom et ses éventuels namespaces en utilisant <xsl:copy>.
    À l'intérieur, pour copier les attributs, on peut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="@*">
      <xsl:copy/>
    </xsl:for-each>
    Ce qui évite au moins de tous les copier tous à la main.
    Puis, ajouter les <element> comme déjà fait avec <xsl:copy-of>.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. forcer xsl à interpréter les balises html
    Par canal68 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/07/2005, 15h02
  2. [XSL] Traiter des balises dans un mixed
    Par Je@nb dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/02/2005, 19h14
  3. [XSL] insérer une balise <a name>
    Par guibong dans le forum XMLRAD
    Réponses: 2
    Dernier message: 01/08/2003, 15h04
  4. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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