Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2888 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] fusionner 2 fichiers XML

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] fusionner 2 fichiers XML

n°2030659
mortelrdv
Posté le 19-10-2010 à 19:40:38  profilanswer
 

Bonjour,  
 
j'utilise Excel 2003 SP2 sous winXP, et dans le VBA j'utilise la référence "Microsoft XML 3.0"
 
je cherche à fusionner 2 fichiers XML. Prenons par exemple ces 2 fichiers ci-dessous :
essai1.xml

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <personne age="49">
  4.         <prenom>Georges</prenom>
  5.         <etat>Marié</etat>
  6.         <enfants>
  7.             <enfant>
  8.                 <nom>Tiop</nom>
  9.             </enfant>
  10.         </enfants>
  11.     </personne>
  12.     <personne age="88">
  13.         <nom>Godoh</nom>
  14.         <prenom>Madeleine</prenom>
  15.         <etat>Veuve</etat>
  16.         <enfants>
  17.             <enfant id="top">
  18.                 <nom>Godoh</nom>
  19.                 <prenom>Jean-Marie</prenom>
  20.             </enfant>
  21.             <enfant id="titi">
  22.                 <prenom>Etienne</prenom>
  23.             </enfant>
  24.         </enfants>
  25.     </personne>
  26. </personnes>


essai2.xml

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <personne age="49">
  4.         <nom>Baud</nom>
  5.         <etat>Marié</etat>
  6.         <enfants>
  7.             <enfant>
  8.                 <prenom>Elisabeth</prenom>
  9.             </enfant>
  10.         </enfants>
  11.     </personne>
  12.     <personne age="88">
  13.         <nom>Godoh</nom>
  14.         <prenom>Madeleine</prenom>
  15.         <etat>Veuve</etat>
  16.         <enfants>
  17.             <enfant id="top">
  18.                 <nom>Godoh</nom>
  19.             </enfant>
  20.             <enfant id="titi">
  21.                 <nom>Godoh</nom>
  22.                 <prenom>Etienne</prenom>
  23.             </enfant>
  24.         </enfants>
  25.     </personne>
  26. </personnes>


 
Le résultat serait, si on prend essai1.xml comme référence (le rouge c'est ce qui est ajouté)

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <personne age="49">
  4.         <nom>Baud</nom>
  5.         <prenom>Georges</prenom>
  6.         <etat>Marié</etat>
  7.         <enfants>
  8.             <enfant>
  9.                 <nom>Tiop</nom>
  10.                 <prenom>Elisabeth</prenom>
  11.             </enfant>
  12.         </enfants>
  13.     </personne>
  14.     <personne age="88">
  15.         <nom>Godoh</nom>
  16.         <prenom>Madeleine</prenom>
  17.         <etat>Veuve</etat>
  18.         <enfants>
  19.             <enfant id="top">
  20.                 <nom>Godoh</nom>
  21.                 <prenom>Jean-Marie</prenom>
  22.             </enfant>
  23.             <enfant id="titi">
  24.                 <nom>Godoh</nom>
  25.                 <prenom>Etienne</prenom>
  26.             </enfant>
  27.         </enfants>
  28.     </personne>
  29. </personnes>


 
 
Merci de vos aides
PS: en vrai, vous vous endoutez que essai1.xml et essai2.xml sont plus grands avec plus de nodes et de sous-nodes et de sous-sous-nodes et de sou.....


Message édité par mortelrdv le 19-10-2010 à 19:41:57
mood
Publicité
Posté le 19-10-2010 à 19:40:38  profilanswer
 

n°2033873
Xxxaaavvv
Posté le 03-11-2010 à 18:32:35  profilanswer
 

Ouaip enfin la c'est pas de la bète fusion hein...
 
tu compare les données de personnes et tu utilise des critères pour savoir si c'est les mêmes pour ENSUITE rassembler les données
 
tu n'utilise que l'age ? pour décider de si c'est la même personne ?

n°2033970
mortelrdv
Posté le 04-11-2010 à 11:23:56  profilanswer
 

c'est pas une question d'age mais de noeud (nom + attributs) du meme niveau de la meme branche.
 
je ne sais si je m'exprime bien, c'est pas évident. changons l'exemple pour un autre:
essai1.xml

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <personne age="88">
  4.         <nom>Godoh</nom>
  5.         <prenom>Madeleine</prenom>
  6.         <etat>Veuve</etat>
  7.         <enfants>
  8.             <enfant id="top">
  9.                 <nom>Godoh</nom>
  10.                 <prenom>Jean-Marie</prenom>
  11.             </enfant>
  12.             <enfant id="titi">
  13.                 <prenom>Etienne</prenom>
  14.             </enfant>
  15.         </enfants>
  16.     </personne>
  17. </personnes>


essai2.xml

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <morpion>
  4.         <nom>Baud</nom>
  5.         <etat>Marié</etat>
  6.         <enfants>
  7.             <enfant>
  8.                 <prenom>Elisabeth</prenom>
  9.             </enfant>
  10.         </enfants>
  11.     </morpion>
  12.     <personne age="88">
  13.         <nom>Godoh</nom>
  14.         <prenom>Madeleine</prenom>
  15.         <etat>Veuve</etat>
  16.         <enfants>
  17.             <enfant id="top">
  18.                 <nom>Godoh</nom>
  19.             </enfant>
  20.             <enfant id="titi">
  21.                 <nom>Godoh</nom>
  22.                 <prenom>Etienne</prenom>
  23.             </enfant>
  24.         </enfants>
  25.     </personne>
  26. </personnes>


 
Le résultat serait, si on prend essai1.xml comme référence (le rouge c'est ce qui est ajouté)

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <personnes>
  3.     <personne age="88">
  4.         <nom>Godoh</nom>
  5.         <prenom>Madeleine</prenom>
  6.         <etat>Veuve</etat>
  7.         <enfants>
  8.             <enfant id="top">
  9.                 <nom>Godoh</nom>
  10.                 <prenom>Jean-Marie</prenom>
  11.             </enfant>
  12.             <enfant id="titi">
  13.                 <nom>Godoh</nom>
  14.                 <prenom>Etienne</prenom>
  15.             </enfant>
  16.         </enfants>
  17.     </personne>
  18.     <morpion>
  19.         <nom>Baud</nom>
  20.         <etat>Marié</etat>
  21.         <enfants>
  22.             <enfant>
  23.                 <prenom>Elisabeth</prenom>
  24.             </enfant>
  25.         </enfants>
  26.     </morpion>
  27. </personnes>



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] fusionner 2 fichiers XML

 

Sujets relatifs
Find + printf + contenu du fichierAffecter à une variable ceux qui est validé dans une combobox - VBA
Créer un fichier XML à partir d'un formulaireSelectionner un fichier tous les N fichiers
supprimer des fichiers dans un repertoire selon leur anciennetéVBA RechercheVmulti
{VBA} Supprimer la barre de format lors d'un clic droitsvn merge n'ajoute pas les fichiers créer entre l'intervalle
Recherche de différences dans deux arbres XML[Excel/VBA]Utilisation de .Close avec Scripting.FileSystemObject
Plus de sujets relatifs à : [VBA] fusionner 2 fichiers XML


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR