Comment fusionner 2 XML

Signaler
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,

J'ai un gros gros probleme.

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

<?xml version="1.0" encoding="iso-8859-1"?>

 <REPERTOIRE>
  <DOSSIER>AAA</DOSSIER>
  <TAILLE2>1111</TAILLE2>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>BBB</DOSSIER>
  <TAILLE>0002</TAILLE>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>CCC</DOSSIER>
  <TAILLE>0005</TAILLE>
 </REPERTOIRE>

Et le deuxieme contient

<?xml version="1.0" encoding="iso-8859-1"?>

 <REPERTOIRE>
  <DOSSIER>AAA</DOSSIER>
  <TAILLE2>2222</TAILLE2>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>BBB</DOSSIER>
  <TAILLE>0001</TAILLE>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>DDD</DOSSIER>
  <TAILLE>0005</TAILLE>
 </REPERTOIRE>

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

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 ?

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

D'avance merci

3 réponses

Messages postés
63
Date d'inscription
vendredi 6 décembre 2002
Statut
Membre
Dernière intervention
16 janvier 2009
1
C'est normal que dans tes 2 fichiers XML pour les répertoires AAA et  BBB il y est un noeud TAILLE2 avec des infos différentes ???
Tes fichiers ne seraient-ils pas plutôt :

   <REPERTOIRE>
      <DOSSIER>AAA</DOSSIER>
      <TAILLE>1111</TAILLE>
   </REPERTOIRE><REPERTOIRE>
      <DOSSIER>BBB</DOSSIER>
      <TAILLE>0002</TAILLE>
   </REPERTOIRE>
<REPERTOIRE>
   <DOSSIER>CCC</DOSSIER>
   <TAILLE>0005</TAILLE>
</REPERTOIRE>

Et le deuxieme serait

<?xml version="1.0" encoding="iso-8859-1"?>

 <REPERTOIRE>
  <DOSSIER>AAA</DOSSIER>
  <TAILLE2>2222</TAILLE2>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>BBB</DOSSIER>
  <TAILLE2>0001</TAILLE2>
 </REPERTOIRE>
 <REPERTOIRE>
  <DOSSIER>DDD</DOSSIER>
  <TAILLE>0005</TAILLE>
 </REPERTOIRE>

 Car sinon j comprends pas trop ce que tu veux faire et comment tu veux le faire...
Frederyck
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

Heu oups mea culpa. C'est une faute de frappe

Dans les deux fichiers il n'y a que <TAILLE> donc pas de <TAILLE2>

Cela etant si cela peut simplifier les choses, je peux faire un fichier source avec <TAILLE1> et l'autre avec <TAILLE2>

Ce que je souhaite c'est obtenir un xml qui fusionne les 2 premiers.

Donc sa structure serait celle la (ou approchant) :

<?xml version="1.0" encoding="iso-8859-1"?>

   <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>

Voila. Maintenant je ne sais pas comment faire ! Une premiere piste serait de passer par un fichier de transformation, mais je n'y connais rien
la deuxieme piste serait d'intervenir au moment du remplissage du Dataset
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
bonjour,

2 solutions :

- tu modifies un peu la strcuture du fichier xml pour pouvoir les charger une List<Repertoire> et ensuite tu peux faire assez facilement le code de "merge"

- tu charges 2 datasets et tu utilise la méthode merge du dataset

la premiere méthode et bien sur beaucoup plus propre

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant