bonjour,
j'ai un fichier xml et je veut le transforamer vers un autre fichier xml mais on realité je veux juste ajouter un element avec des attributs a mon fichier source et on gardon les tous noeuds de mon fichier source !!
Code:

<?xml version="1.0" encoding="UTF-8"?> 
<personne> 
   <nom>aaa</nom> 
   <prenom>zzz</prenom> 
   <adresse>ppp</adresse> 
</personne> 
 

je veux le transformer vers :
Code:

<?xml version="1.0" encoding="UTF-8"?> 
<personne> 
   <nom>aaa</nom> 
   <prenom>zzz</prenom> 
</personne> 
<adresse> 
   <rue>eee</rue> 
   <ville>vvv</ville> 
   <cp>ccc</cp> 
</adresse> 
Si un modo m'entend, pourrait-il basculer ce sujet dans XML / XSL / RSS / FOAF ? Merci à lui.

@ parrain001> On peut faire beaucoup de choses, mais selon toi d'où pourraient provenir les infos rue ville cp ? de ppp je suppose, cependant sans aucune information relative à la structure de ppp ça va être difficile.
Administrateur
Xavier a écrit :
Si un modo m'entend, pourrait-il basculer ce sujet dans XML / XSL / RSS / FOAF ? Merci à lui.
Entendu.
merci pour votre reponse, mais moi ça m'interesse pas d'ou vient les nouveaux champs mais ce qui m'interesse c'est de faire cette transformation
parrain001 a écrit :
ça m'interesse pas d'ou vient les nouveaux champs mais ce qui m'interesse c'est de faire cette transformation


Malheureusement, l'origine des information va conditionner les méthodes pour faire la transformation !

Si les informations à rajouté vienne d'un autre fichier XML, tu peut tout à fait utiliser les transformations XSLT... s'achant que les règle de transformation von grandement dépendre de la structure de tes divers fichiers XML.

Si les informations à rajouté viennent d'un base de données, i lfaudra sans doute que tu utilise un langage intermédiaire (PHP, CGI, C++, ...)

Si ce n'est que quelques changement épisodique, tu peut aussi tout à fait le faire à la main avec un editeur de texte.

Voila, à toi de voir en fonction du contexte !
Smiley smile
a écrit :
moi ça m'interesse pas d'ou vient les nouveaux champs mais ce qui m'interesse c'est de faire cette transformation
Nous nous rapprochons à grand pas du dialogue de sourds, tentons un dernier effort afin d'éviter ... (euh bon, je viens de lire d'excellents trolls dans le bar il ne faudrait pas suivre l'exemple).

Donc tu sembles intéressé par une transformation. Or une transformation transforme. Tu nous as clairement indiqué la cible, nous y sommes presque, il ne manque plus que le point de départ. Alors nous pourrons coder (éventuellement en xslt) la transformation que ta source et ta cible auront définie.
c pour Xavier, j'ai pas compris de ce que tu veut dire par ta reponse, eh ben si t'as une solution a ma transformation, j'aimerai bien que tu me la montre parce que vraiment je l'ai besoin et merci :!!!
Nous avons besoin de savoir d'où viennent les informations

<rue>eee</rue>
<ville>vvv</ville>
<cp>ccc</cp>

que tu veux ajouter... de quel fichier? écrit sous quel format? de quelle base? Ici, tel que tu nous présentes le problème, ces informations semblent "tomber du ciel". Et on ne peut pas demander à ton script de transformation d'inventer cette information...

... à moins que tu ne veuilles remplir par un contenu prédéterminé?
Modifié par Gilles (04 May 2005 - 08:33)
ça c'est juste un exemple, pour moi je veut fair la transformation d'un xsd vers un xsd, et les information rue, ville et cp ça m'interesse pas d'ou viennent parce que moi au niveau des xsd (XML Schema) j'ai besoin de transformer juste la structure(les elements et les attribut)donc pour moi eee, vvv et ccc je ne l'ai pas besoin, j'ai met un exemple avec XML, c'est juste pour simplifier les choses !!! et merci
Bon, je me lance... je ne suis pas sûr d'avoir encore compris ton problème.

Premièrement (nous ne l'avions pas remarqué au début!), le fichier XML de sortie que tu souhaites n'est pas bien formé: il ne doit contenir qu'un élément racine. Supposons que cela soit identite. Voici ce que je te propose:

(...)
<xsl:template match="/">
<xsl:element name="identite">
    <!-- Ceci copie normalement l'intégralité de ton élément personne-->
    <xsl:copy-of select="personne"/>
    <!-- Ici, on ajoute les éléments que tu souhaites-->
    <xsl:element name="adresse">
        <xsl:element name="rue"/>
        <xsl:element name="ville"/>
        <xsl:element name="cp"/>
    </xsl:element>
</xsl:element>
</xsl:template>


Avec ça, tu devrais obtenir quelque chose comme

<?xml version="1.0" encoding="UTF-8"?>
<identite>
<personne>
<nom>aaa</nom>
<prenom>zzz</prenom>
<adresse>ppp</adresse>
</personne>
<adresse>
<rue/>
<ville/>
<cp/>
</adresse>
</identite>


Est-ce de ce genre de transformation dont tu parles Smiley ohwell ?