Zusammenführen von Daten aus zwei XML-Dokumenten mit "System.xml" mit Visual C# .NET

Zusammenfassung

Dieser Artikel veranschaulicht wie ein DataSet -Objekt verwendet wird um zwei XML-Dokumente zusammen zuführen. Das DataSet -Objekt ist für die Unterstützung getrennt, verteilten Datenszenarios mit ADO.NET. Das DataSet ist eine speicherresidente Darstellung von Daten, die ein konsistentes relationales Programmiermodell unabhängig von der Datenquelle bereitstellt. Das DataSet stellt einen vollständigen Satz von Daten, einschließlich verknüpfte Tabellen-Integritätsregeln und Beziehungen zwischen den Tabellen.

Voraussetzungen

Die folgende Liste enthält die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:

  • Microsoft Windows XP, Windows 2000 oder Windows NT 4.0 Servicepack 6a (SP6a)
  • Microsoft Visual Studio .NET
Es wird vorausgesetzt, dass Sie mit folgenden Themen vertraut sind:

  • Visual C# .NET syntax
  • Extensible Markup Language (XML)

Erstellen Sie die Datei "Books1.xml"

  1. Klicken Sie im Windows Start auf Ausführen, geben Sie Notepad.exeund klicken Sie dann auf OK.
  2. Markieren Sie den folgenden Code und Klickenmit der rechten Maustaste im Codes. Klicken Sie im Editor im Menü Bearbeiten auf Einfügen.
    <?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. Klicken Sie im Menü Datei auf Speichern.
  4. Klicken Sie im Dialogfeld Speichern unter im Dropdown-Listenfeld Dateityp auf Alle Dateien. Geben Sie im Feld Dateiname "Books1.xml"und klicken Sie dann auf Speichern.

Erstellen Sie die Datei "Books2.xml"

  1. Erstellen Sie im Editor eine neue Textdatei namens "Books2.xml".
  2. Kopieren Sie und fügen Sie den folgenden XML-CODE in "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. Klicken Sie im Menü Datei auf Speichern.
  4. Klicken Sie im Dialogfeld Speichern unter im Dropdown-Listenfeld Dateityp auf Alle Dateien. Geben Sie im Feld Dateiname "Books2.xml"und klicken Sie dann auf Speichern.

Schritte zum Erstellen der Anwendung Visual C# .NET

  1. Starten Sie Visual Studio .NET und erstellen Sie ein neues Visual C# Konsolenanwendungsprojekt.
  2. Fügen Sie den folgenden Code am Anfang des Codefensters:
    using System;using System.Xml;
    using System.IO;
    using System.Data ;

  3. Kopieren Sie und fügen Sie den folgenden Code in 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. Erstellen Sie das Projekt und führen Sie die Anwendung aus. Beachten Sie, dass die Meldung "Zusammenführen von XML-Dokumenten beendet" im Konsolenfenster angezeigt wird.
  5. Schließen Sie das Konsolenfenster. Beachten Sie, dass die Datei Books.xml im Pfad erstellt wird.
  6. Öffnen Sie "Books.xml". Beachten Sie, dass die Daten aus "Books2.xml" am Ende von "Books1.xml" angehängt werden.

Anderen XML-Dokument Szenarien

Zusammenführen Sie XML-Dokumente, die die gleiche Struktur

Die vorherigen Visual C# .NET demonstriert, der Ausgabe von XML-Dokumenten mit derselben Struktur.

Zusammenführen Sie XML-Dokumente, die unterschiedliche Strukturen haben

  1. Öffnen Sie "Books2.xml" und Ersetzen Sie XML durch das folgende XML:
    <?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. Speichern Sie "Books2.xml".
  3. Führen Sie das Projekt mit Visual C# .NET erneut aus. Beachten Sie, dass die Knoten aus dem zweiten Dokument ("Books2.xml") an das erste XML-Dokument ("Books1.xml") angehängt wurden.

Zusammenführen von XML-Dokumente mit ähnlicher Struktur, das zweite Dokument zusätzliche Elemente enthält

  1. Öffnen Sie "Books2.xml" und Ersetzen Sie XML durch das folgende XML:
    <?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 gnomes at a key base.</description>
    </book>
    </catalog>

  2. Speichern Sie "Books2.xml".
  3. Führen Sie das Projekt mit Visual C# .NET erneut aus. Beachten Sie, dass die Knoten aus dem zweiten Dokument an das erste XML-Dokument angehängt wurden.

Zusammenführen von XML-Dokumente mit ähnlicher Struktur, das zweite Dokument Attribute enthält

  1. Öffnen Sie "Books2.xml" und Ersetzen Sie XML durch das folgende XML:
    <?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. Speichern Sie "Books2.xml".
  3. Führen Sie das Projekt mit Visual C# .NET erneut aus. Beachten Sie, dass die Knoten aus dem zweiten Dokument an das erste XML-Dokument angehängt und die Struktur der ersten XML-Dokument entspricht.

Zusammenführen Sie XML-Dokumente mit ähnlicher Struktur, erste Attribute Dokument,

  1. Ändern Sie Visual C#-Code wie folgt, sodass "Books1.xml" an "Books2.xml" angefügt wird:
    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. Führen Sie das Projekt mit Visual C# .NET erneut aus. Beachten Sie, dass das resultierende XML-Dokument die Knoten aus "Books1.xml" an "Books2.xml" anfügt. Beachten Sie darüber hinaus alle Knoten Buch Attribut "Genre" enthalten.

    Je nach Struktur des ersten XML-Dokuments wird das zweite XML-Dokument geändert, sodass die resultierende XML mehr Bedeutung besitzt wird.

Referenzen

Klicken Sie für Weitere Informationen auf die nachstehende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

286817 wie zum Zusammenführen von Daten in zwei XML-Dokumenten durch Programmierung das Dokumentobjektmodell (DOM)
Eigenschaften

Artikelnummer: 311530 – Letzte Überarbeitung: 10.01.2017 – Revision: 1

Feedback