Comment faire : Bêta : fusion des données à partir de deux documents XML à l'aide de System.XML avec Visual Basic .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: 308066
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Cet article traite d'une version bêta d'un produit Microsoft. Les informations contenues dans cet article sont fournies en tant que - sont et sont sujettes à modification sans préavis.

Aucun support produit officiel n'est disponible auprès de Microsoft pour ce produit bêta. Pour savoir comment obtenir de l'assistance sur une version bêta, consultez la documentation fournie avec les fichiers du produit bêta ou reportez-vous au site Web à partir de laquelle vous l'avez téléchargé.

Pour une Visual c# .NET version de cet article, reportez-vous 311530.

DANS CETTE TÂCHE

Résumé
Cet article explique 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 Basic .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>Ralls, Kim</author>      <title>Midnight Rain</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>Thurman, Paula</author>      <title>Splish Splash</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 Basic .NET

  1. Démarrez Visual Studio .NET et créez un nouveau projet Application Console Visual Basic.
  2. Ajoutez le code suivant en haut de la fenêtre code :
    Imports System.Xml					
  3. Copiez et collez le code suivant dans la procédure Sub Main :
            Dim xmlreader1 As New XmlTextReader("C:\Books1.xml")        Dim xmlreader2 As New XmlTextReader("C:\Books2.xml")        Dim ds1 As New DataSet()        Try            ds1.ReadXml(xmlreader1)            Dim ds2 As New DataSet()            ds2.ReadXml(xmlreader2)            ds1.Merge(ds2)            ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)            Console.WriteLine("Completed merging XML documents")        Catch ex As Exception            Console.WriteLine(ex.Message)        End Try        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 d'accès spécifié.
  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 Visual Basic .NET 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>Bill Gates</CustomerName>          <PricePerUnit>5.95</PricePerUnit>          <ClosingDate>2001-12-16</ClosingDate></Customer><Customer>          <CustomerName>Bill Gates</CustomerName>          <PricePerUnit>5.95</PricePerUnit>          <ClosingDate>2001-12-16</ClosingDate></Customer></SampleData>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual Basic .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>Thurman, Paula</author>      <title>Splish Splash</title>      <genre>Romance</genre>      <price>4.95</price>      <publish_date>2000-11-02</publish_date>      <description>A deep-sea diver finds true love twenty       thousand leagues beneath the sea.</description>   </book></catalog>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual Basic .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>Thurman, Paula</author>      <title>Splish Splash</title>      <price>4.95</price>   </book>   <book id="bk108" genre="Horror">      <author>Knorr, Stefan</author>      <title>Creepy Crawlies</title>      <price>4.95</price>   </book>   </catalog>					
  2. Enregistrer Books2.xml.
  3. Exécutez à nouveau le projet Visual Basic .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 Basic comme suit afin que Books1.xml est ajouté à Books2.xml :
            Dim xmlreader1 As New XmlTextReader("C:\Books2.xml")        Dim xmlreader2 As New XmlTextReader("C:\Books1.xml")        Dim ds1 As New DataSet()        Try            ds1.ReadXml(xmlreader1)            Dim ds2 As New DataSet()            ds2.ReadXml(xmlreader2)            ds1.Merge(ds2)            ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)            Console.WriteLine("Completed merging XML documents")        Catch ex As Exception            Console.WriteLine(ex.Message)        End Try        Console.Read()					
  2. Exécutez à nouveau le projet Visual Basic .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 :
286817HOWTO : Fusion 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 : 308066 - Dernière mise à jour : 12/06/2015 05:43:28 - Révision : 2.3

Microsoft Visual Basic .NET 2002 Initiation, Microsoft Visual Basic .NET 2003 Initiation, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbhowtomaster KB308066 KbMtfr
Commentaires