Comment faire pour fusionner les données de deux documents XML Using System.XML en utilisant Visual c# .NET

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 311530
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Résumé
Cet article vous montre comment utiliser un objet DataSet pour fusionner deux documents XML. Le DataSet objet est central de la prise en charge déconnectées et distribuées les scénarios de données avec ADO.NET. Le DataSet est une représentation résidente en mémoire de données qui propose un modèle de programmation cohérent, relationnel quelle que soit la source de données. Le DataSet représente un ensemble complet de données, y compris des tables connexes, des contraintes et des relations entre les tables.

back to the top

Configuration requise

La liste suivante présente le matériel, logiciels, infrastructure de réseau et service packs dont vous avez besoin :
  • Microsoft Windows XP, Windows 2000 ou Windows NT 4.0 Service Pack 6 a (SP6a)
  • Microsoft Visual Studio .NET
Cet article suppose que vous êtes familiarisé avec les rubriques suivantes :
  • Syntaxe Visual c# .NET
  • (XML) Extensible Markup Language
back to the top

Créer le fichier Books1.xml

  1. Dans le menu Démarrer , cliquez sur Exécuter , tapez Notepad.exe et puis cliquez sur OK .
  2. Sélectionnez le code suivant, cliquez avec le bouton droit sur le code et puis cliquez sur Copier . Dans le bloc-notes, dans le menu Edition , cliquez sur Coller .
    <?xml version="1.0"?><catalog>   <book id="bk101">      <author>Gambardella, Matthew</author>      <title>XML Developer's Guide</title>      <genre>Computer</genre>      <price>44.95</price>   </book>   <book id="bk102">      <author>Jeanette, Dasha</author>      <title>Quack the Duck</title>      <genre>Fantasy</genre>      <price>5.95</price>   </book></catalog>					
  3. Dans le menu fichier , cliquez sur Enregistrer .
  4. Dans la boîte de dialogue Enregistrer sous , dans la zone de liste déroulante Type , cliquez sur Tous les fichiers . Dans la zone de texte Nom de fichier , tapez Books1.xml et puis cliquez sur Enregistrer .
back to the top

Créer le fichier Books2.xml

  1. Dans le bloc-notes, créez un nouveau fichier texte nommé Books2.xml.
  2. Copiez et collez le code XML suivant dans Books2.xml :
    <?xml version="1.0"?><catalog><book id="bk106">      <author>Randall, Cynthia</author>      <title>Lover Birds</title>      <genre>Romance</genre>      <price>4.95</price>   </book>   <book id="bk107">      <author>Vinzovskaia, Irina</author>      <title>Piano Fort A</title>      <genre>Romance</genre>      <price>4.95</price>   </book></catalog>					
  3. Dans le menu fichier , cliquez sur Enregistrer .
  4. Dans la boîte de dialogue Enregistrer sous , dans la zone de liste déroulante Type , cliquez sur Tous les fichiers . Dans la zone de texte Nom de fichier , tapez Books2.xml et puis cliquez sur Enregistrer .
back to the top

Procédure pour créer l'application Visual c# .NET

  1. Démarrez Visual Studio .NET, puis créez un nouveau projet Application Console Visual c#.
  2. Ajoutez le code suivant en haut de la fenêtre code :
    using System;using System.Xml;using System.IO;using System.Data ;					
  3. Copiez et collez le code suivant dans static void main (string [] args):
    try	{		XmlTextReader xmlreader1 = new XmlTextReader("C:\\Books1.xml");		XmlTextReader xmlreader2 = new XmlTextReader("C:\\Books2.xml");		DataSet ds = new DataSet();		ds.ReadXml(xmlreader1);		DataSet ds2 = new DataSet();		ds2.ReadXml(xmlreader2);		ds.Merge(ds2);		ds.WriteXml("C:\\Books.xml");		Console.WriteLine("Completed merging XML documents");	}	catch (System.Exception ex)	{		Console.Write(ex.Message);	}Console.Read();						
  4. Générez et exécutez l'application. Notez que le message «Terminé la fusion de documents XML» s'affiche dans la fenêtre de console.
  5. Fermez la fenêtre de console. Notez que le fichier Books.XML est créé dans le chemin que vous spécifiez.
  6. Ouvrez Books.Xml. Notez que les données de Books2.xml sont ajoutées à la fin pour Books1.xml.
back to the top

Différents scénarios de document XML

Fusion de documents XML ayant la même structure

L'exemple de Visual c# précédent illustre la sortie de documents XML avec la même structure.

back to the top

Fusion de documents XML qui ont des structures différentes

  1. Ouvrez Books2.xml et remplacez le code XML par le code XML suivant :
    <?xml version="1.0" ?><SampleData><Customer>          <CustomerName>Bob Frapples</CustomerName>          <PricePerUnit>5.95</PricePerUnit>          <ClosingDate>2001-12-16</ClosingDate></Customer><Customer>          <CustomerName>Bob Frapples</CustomerName>          <PricePerUnit>5.95</PricePerUnit>          <ClosingDate>2001-12-16</ClosingDate></Customer></SampleData>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual c# .NET. Notez que les nœuds du deuxième document (Books2.xml) sont ajoutés le premier document XML (Books1.xml).
back to the top

Fusion de documents XML avec structure similaire dans second document contient des éléments supplémentaires

  1. Ouvrez Books2.xml et remplacez le code XML par le code XML suivant :
    <?xml version="1.0"?><catalog><book id="bk106">      <author>Randall, Cynthia</author>      <title>Lover Birds</title>      <genre>Romance</genre>      <price>4.95</price>      <publish_date>2000-09-02</publish_date>      <description>When Carla meets Paul at an ornithology       conference, tempers fly as feathers get ruffled.</description>   </book>   <book id="bk107">      <author>Vinzovskaia, Irina</author>      <title>Piano Fort A</title>      <genre>Romance</genre>      <price>4.95</price>      <publish_date>2000-11-02</publish_date>      <description>Two young pianists strike a chord when they fight a       pitched battle to stop the metro gnomes at a key base.</description>   </book></catalog>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual c# .NET. Notez que les nœuds du deuxième document sont ajoutés au premier document XML.
back to the top

Fusion de documents XML avec structure similaire dans second document contient des attributs

  1. Ouvrez Books2.xml et remplacez le code XML par le code XML suivant :
    <?xml version="1.0"?><catalog><book id="bk106" genre="Romance">      <author>Randall, Cynthia</author>      <title>Lover Birds</title>      <price>4.95</price>   </book>   <book id="bk107" genre="Romance">      <author>Vinzovskaia, Irina</author>      <title>Piano Fort A</title>      <price>4.95</price>   </book>   <book id="bk108" genre="Horror">      <author>de Dogg, Jazz</author>      <title>Night of the Flea</title>      <price>4.95</price>   </book>   </catalog>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual c# .NET. Notez que les nœuds du deuxième document sont ajoutés au premier document XML et la structure est identique à celle du premier document XML.
back to the top

Fusion de documents XML avec structure similaire dans premier document contient des attributs

  1. Modifiez le code Visual c# comme suit afin que Books1.xml est ajouté à Books2.xml :
    try	{		XmlTextReader xmlreader1 = new XmlTextReader("C:\\Books2.xml");		XmlTextReader xmlreader2 = new XmlTextReader("C:\\Books1.xml");		DataSet ds = new DataSet();		ds.ReadXml(xmlreader1);		DataSet ds2 = new DataSet();		ds2.ReadXml(xmlreader2);		ds.Merge(ds2);		ds.WriteXml("C:\\Books.xml");		Console.WriteLine("Completed merging XML documents");	}	catch (System.Exception ex)	{		Console.Write(ex.Message);	}Console.Read();						
  2. Exécutez à nouveau le projet Visual c# .NET. Notez que le document XML résultant ajoute les nœuds Books1.xml Books2.xml. En outre, notez que tous les nœuds book contient l'attribut "genre".

    Par conséquent, selon la structure du premier document XML, le second document XML est modifié afin que le XML résultant est plus significatif.
back to the top
Références
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
286817Comment faire pour fusionner des données dans deux documents XML par programmation le modèle DOM (DOM)
back to the top

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 311530 - Dernière mise à jour : 12/07/2015 08:06:25 - Révision : 2.5

Microsoft Visual C# .NET 2002 Initiation, Microsoft Visual C# .NET 2003 Initiation, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbhowtomaster kbio kbsystemdata KB311530 KbMtfr
Commentaires