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

XML/XSL et SOAP Discussion :

Fusionner 2 fichiers XML


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Fusionner 2 fichiers XML
    Bonjour,

    J'ai un gros gros probleme. J'ai bien trouvé des choses sur ce superbe forum mais jamais a 100% dans le meme cas que moi... parce que moi je n'ai pas d'id.

    Donc :

    J'ai deux fichiers xml (fic1.xml et fic2.xml) qui contiennent :

    <?xml version="1.0" encoding="iso-8859-1"?>
    <ARBO>
    <REPERTOIRE>
    <DOSSIER>AAA</DOSSIER>
    <TAILLE>1111</TAILLE>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>BBB</DOSSIER>
    <TAILLE>0002</TAILLE>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>CCC</DOSSIER>
    <TAILLE>0005</TAILLE>
    </REPERTOIRE>
    </ARBO>

    Et le deuxieme contient

    <?xml version="1.0" encoding="iso-8859-1"?>
    <ARBO>
    <REPERTOIRE>
    <DOSSIER>AAA</DOSSIER>
    <TAILLE>2222</TAILLE>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>BBB</DOSSIER>
    <TAILLE>0001</TAILLE>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>DDD</DOSSIER>
    <TAILLE>0005</TAILLE>
    </REPERTOIRE>
    </ARBO>

    Je voudrais afficher ces deux fichier dans un Datagrid afin d'avoir l'affichage suivant

    AAA 1111 2222
    BBB 0002 0001
    CCC 0005
    DDD 0005


    ou si vous preferez sous forme XML le resultat devrait etre celui la

    <?xml version="1.0" encoding="iso-8859-1"?>
    <ARBO>
    <REPERTOIRE>
    <DOSSIER>AAA</DOSSIER>
    <TAILLE1>1111</TAILLE1>
    <TAILLE2>2222</TAILLE2>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>BBB</DOSSIER>
    <TAILLE1>0002</TAILLE1>
    <TAILLE2>0001</TAILLE2>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>CCC</DOSSIER>
    <TAILLE1>0005</TAILLE1>
    <TAILLE2></TAILLE2>
    </REPERTOIRE>
    <REPERTOIRE>
    <DOSSIER>DDD</DOSSIER>
    <TAILLE1></TAILLE1>
    <TAILLE2>0005</TAILLE2>
    </REPERTOIRE>
    </ARBO>


    Important, si cela peut simplifier la solution, j'ai la possibilité de nommé mon champ en <TAILLE1> dans le premier fichier et <TAILLE2> dans le deuxieme.

    Voila, et je n'y arrive pas du tout !
    Comment faire ?
    Faut il que je passe par une transformation XSL ou XLT ? Si oui comment ? Je n'y connais rien en transformation ?

    Ou alors en pure programmation avec 2 dataset ? (ha oui c'est que c'est pour un developpement en ASP VB... le but final étant d'afficher le resultat dans une datagrid)

    Bref pourriez vous m'aider ? Me donner une solution ou au moins quelques pistes ?

    D'avance merci

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    C'est effectivement possible avec XSL-T : on transforme un des deux documents et on y joint l'autre par la fonction document() par exemple avec l'utilisation d'une variable. Ensuite, il n'y a plus qu'à parcourir tout ça pour construire ce que vous voulez...

    Je ne vois pas, dans votre exemple, l'intérêt de définir TAILLE 1 et TAILLE2 d'un point de vue XML alors qu'il seraitt naturel en XML d'avoir plusieurs fois l'élément TAILLE !

  3. #3
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    sinon une autre méthode si ton nombre de fichier peux grossir et que tu ne souhaites pas modifier à chaque ajout de fichier ton fichier xsl , est de créer un nouveau fichier xml regroupant les autres fichiers xml
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE students[
    <!ENTITY source1 SYSTEM "student1.xml">
    <!ENTITY source2 SYSTEM "student2.xml">
    <!ENTITY source3 SYSTEM "student3.xml">
    ]>
     
    <students>
    &source1;
    &source3;
    &source2;
    </students>
    cela permet dans un fichier l'ensemble des fichier student1,2 et 3

Discussions similaires

  1. Fusionner deux fichiers XML en Java
    Par gotteserbin dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 30/04/2014, 17h58
  2. Réponses: 1
    Dernier message: 23/10/2013, 10h56
  3. [JDOM] Fusionner deux fichiers XML
    Par rouimi dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 12/07/2013, 17h26
  4. fusionner deux fichiers XML Visual C++ 2010
    Par Gloria_Im dans le forum Visual C++
    Réponses: 4
    Dernier message: 21/05/2012, 16h04
  5. Fusionner deux fichiers XML en perl
    Par stephyl86 dans le forum Modules
    Réponses: 3
    Dernier message: 26/01/2012, 23h01

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