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 :

copier un document XML et déplacer un élément


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut copier un document XML et déplacer un élément
    Bonjour à tous,

    Je dois recopier un doc XML et modifier un élément.
    Mon souci est que je dois déplacer du texte et balise et je sollicite votre aide
    Voici mon exemple XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div>
        <p> texte <toto>texte toto</toto> texte2<tata>texte tata</tata> texte <toto>texte toto</toto>
            texte3 <tata>texte tata</tata> texte </p>
    </div>
    Je souhaiterai avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div>
        <p> texte <toto>texte toto texte2<tata>texte tata</tata></toto>  texte <toto>texte toto texte3 <tata>texte tata</tata></toto>
             texte </p>
    </div>
    J'aimerais que le texte juste après + balise tata soit déplacé dans mon début de code xsl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <xsl:template match="node() | @*">
            <xsl:copy>
                <xsl:apply-templates select="@* | node()"/>
            </xsl:copy>
        </xsl:template>
    si quelqu'un a une idée du Xpath à utiliser ?
    Une précision le contenu après toto peut être du texte ou des balises, et il y a toujours la balise tata
    Merci par avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Le code que tu fais là nous montre la copie toute simple. C'est bien. Maintenant il faut s'arranger pour faire les modifications voulues.

    Il y en a deux :
    - les balises <p> ne doivent plus accepter les balises <tata> (désormais ce sera aux balises <toto> de les contenir.) Même chose pour tout ce qui est situé entre <toto> et <tata>.
    - les balises <toto> doivent maintenant aller récupérer la balise <tata> qui les suit, de même que tout ce qu'il y a entre.

    Ça nous fait donc deux nouveaux templates en plus du template général qui fait la copie.
    Le <p> est simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:template match="p">
      <xsl:copy>
        <!-- copier <p> et ses attributs -->
        <xsl:apply-templates select="@*"/>
     
        <!-- appliquer les templates sur le contenu, mais exclure <tata> et ce qui est entre <toto> et <tata> -->
        <xsl:apply-templates select="node()[not(self::tata) and not(preceding-sibling::*[self::tata or self::toto][1][self::toto])]"/>
      </xsl:copy>
    </xsl:template>
    "Tout ce qui n'est pas un <tata> et pour qui, si on cherche le premier élément <toto> ou <tata> qui le précède, on ne tombe pas sur <toto>"

    Teste ça.
    Reste à faire le template sur <toto>. Peux-tu essayer ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Copier un document XML, sauf certaines balises
    Par shrek93 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 15/07/2013, 17h16
  2. copier un document XML a partir de l'URL
    Par am@123 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/06/2009, 13h20
  3. [XSLT]Comment copier un document xml avec xslt.
    Par maa dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 07/05/2009, 14h02
  4. [XPATH] [DOM4J] Comment générer un xPath à partir d'un élément d'un document XML
    Par Hoegaarden dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/10/2008, 15h02
  5. Ajouter des éléments à un document XML
    Par ptr83 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 17/10/2006, 08h43

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