DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 308066 - Dernière mise à jour: jeudi 4 septembre 2003 - Version: 2.3

 

Sommaire

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.

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

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 .

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 .

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.

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.

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

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.

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.

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.

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 :
286817  (http://support.microsoft.com/kb/286817/EN-US/ ) HOWTO : Fusion des données dans deux documents XML par programmation le modèle DOM (DOM)

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Mots-clés : 
kbmt kbhowtomaster KB308066 KbMtfr
Traduction automatiqueTraduction automatique
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  (http://support.microsoft.com/kb/308066/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store