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] Comment transformer un fichier XML en un autre XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Points : 48
    Points
    48
    Par défaut [XSL] Comment transformer un fichier XML en un autre XML
    Bonjour,

    Je cherche comment faire pour réécrire un fixhier XML après avoir remplacé des variables en XSL en un autre fixhier XML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <mail>
    	<header>
    		<from>test@email.com</from>
    		<to>test@email.com</to>
    		<cc>test@email.com</cc>
    		<subject>Sujet du mail</subject>
    	</header>
    	<body>
    		<info xslParamName="content" />
    	</body>
    </mail>
    Et voici ce que je souhaite obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <mail>
    	<header>
    		<from>test@email.com</from>
    		<to>test@email.com</to>
    		<cc>test@email.com</cc>
    		<subject>Sujet du mail</subject>
    	</header>
    	<body>
    		Le contenu de mon message...
    	</body>
    </mail>
    Le problème c'est que je ne sais pas comment faire en XSL pour récupérer et réécrire la totalité de l'arborescence du fichier XML source sachant que je peux avoir plusieurs modèles de documents XML.

    Je pense qu'il doit y avoir une méthode en XSL qui permet de faire ça...

    Merci d'avance pour votre aide,

    Laurent

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    à partir du moment ou tu sais ce que tu veux remplacer c est très simple, maintenant reste à savoir si tu sais comment faire fonctionner une xslt...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Points : 48
    Points
    48
    Par défaut
    je n'ai pas de problème pour remplacer mes variables... mais je souhaite pouvoir réécrire mon arbre XML comme à l'origine, j'ai même besoin de réécrire les attributs s'il y a...

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    il faut que tu écrives ton template pour remplacer qui match avec les elements à remplacer. ensuite pour ce qui est de recopier les autres éléments, écris ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <xsl:template match="/">
      <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="mes noeuds que je vais modif"/>
     
    <xsl:template match="*">
      <xsl:copy>
       <xsl:copy-of select="text()|@*"/>
       <xsl:apply-templates/>
      <xsl:copy>
    </xsl:template>
    le mieu serait d ecrire le template equivalent pour les noeuds text() et @*
    mais bon essaie deja ca

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Points : 48
    Points
    48
    Par défaut
    merci tiscars, ça marche à la perfection !
    et merci aussi pour ta rapidité...

    Laurent

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    de rien
    n oubli pas le tag "résolu"

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Points : 48
    Points
    48
    Par défaut
    Voici la template que j'applique à mon doc... sinon ça copie le texte deux fois dans les balises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	<xsl:template match="*"> 
    	  <xsl:copy>
    	   <xsl:copy-of select="@*"/> 
    	   <xsl:apply-templates/> 
    	  </xsl:copy>
    	</xsl:template>
    Laurent

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

Discussions similaires

  1. [XSD] Comment transformer un fichier xml en fichier xsd (java)
    Par mehdiing dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/03/2008, 11h21
  2. comment transformer un Fichier xls (Excel) en XML
    Par sperron dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 13/04/2006, 16h35
  3. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15
  4. Comment générer un fichier texte à partir d'un XML et XSL
    Par Jayceblaster dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/07/2005, 22h42
  5. Réponses: 4
    Dernier message: 23/06/2005, 12h44

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