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] Copie d'un XML avec balisage des elements text()


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [XSLT] Copie d'un XML avec balisage des elements text()
    Bonjour,
    J'ai un besoin urgent de trouver une solution pour ce genre de probleme:
    Ademettons le xml suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a>
    un text qui ...
    <b>
    un text 
    </b>
    ... continue ici 
    <a>
    je veux copier tous le noeuds intégralement inchangé mais mettre toutes les parties de type text() entre balise : ce qui donnerait ceci en résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a>
    <text>un text qui ...</text>
    <b>
    <text>un text</text> 
    </b>
    <text>... continue ici </text>
    <a>
    J'avoue avoir chercher mais je ne m'en sort pas - quelqu'un peut il m'aider
    Merci d'avance
    Bob

  2. #2
    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
    regarde ici

    http://xml.developpez.com/sources/?page=modifs#I_html

    Il te suffit d'adapter ce code, là ou il enlève des balises toi tu eux en rajouter mais la logique est la même

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci infiniment - c était simple et précieux.
    Voilà ce que j'ai fait : je génère un tag text pour tout text()... le reste est inchangé.

    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
    <xsl:template match="node()">
    		<xsl:copy>
    			<xsl:apply-templates select="node()|@*"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="body//text()">
    		<text>
    			<xsl:attribute name="ref"><xsl:value-of select="generate-id(.)"/></xsl:attribute>
          		<xsl:value-of select="."/>
    		</text>
    	</xsl:template>
     
    	<xsl:template match="@*">
    		<xsl:copy>
    			<xsl:apply-templates select="node()|@*"/>
    		</xsl:copy>
    	</xsl:template>

  4. #4
    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
    pourquoi utilise-tu body//text() ? il est toujours très couteux d'utiliser l'axe // et mieux vaut le faire avec parcimonie.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/04/2012, 13h53
  2. [XSLT] Transformer deux fichiers XML avec un seul Stylesheet
    Par sylvie dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/08/2010, 14h23
  3. copie d'un pds avec modification des noms des membres
    Par naimespseudo dans le forum z/OS
    Réponses: 17
    Dernier message: 22/08/2009, 23h09
  4. Réponses: 3
    Dernier message: 24/04/2007, 11h39
  5. [XSLT] Copie d'un XML, avec tri
    Par Taz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/04/2007, 13h48

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