Gewusst wie: Zusammenführen von Daten aus zwei XML-Dokumenten mit "System.Xml" mit Visual C# .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 311530 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D311530
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser schrittweise Beitrag veranschaulicht die ein DataSet -Objekt verwenden, um zwei XML-Dokumenten zusammenzufü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üpfter Tabellen, Einschränkungen und Beziehungen zwischen Tabellen dar.

Anforderungen

Die folgende Liste führt 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
In diesem Artikel wird davon ausgegangen, dass Sie mit den 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, Typ Notepad.exe, und klicken Sie dann auf OK.
  2. Markieren Sie den folgenden Code, mit der rechten Maustaste im Codes, und klicken Sie dann auf Kopieren. Klicken Sie im Editor klicken Sie 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 klicken Sie im Dropdown Listenfeld Speichern als Typ auf Alle Dateien. Geben Sie im Textfeld 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 die 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 klicken Sie im Dropdown Listenfeld Speichern als Typ auf Alle Dateien. Geben Sie im Textfeld Dateiname"Books2.xml", und klicken Sie dann auf Speichern.

Schritte zur Erstellung der Visual C# .NET-Anwendung

  1. Starten Sie Visual Studio .NET, und erstellen Sie ein neues Konsolenanwendung in Visual C#-Projekt.
  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 und führen Sie die Anwendung. Beachten Sie, dass die Meldung "Zusammenführen von XML-Dokumenten abgeschlossen" im Konsolenfenster angezeigt wird.
  5. Das Konsolenfenster zu schließen. Beachten Sie, dass die Datei Books.xml im Pfad erstellt wird, die Sie angeben.
  6. Öffnen Sie "Books.xml". Beachten Sie, dass die Daten aus "Books2.xml" am Ende von "Books1.xml" angehängt ist.

Verschiedene XML-Dokument-Szenarien

Zusammenführen von XML-Dokumenten, die dieselbe Struktur aufweisen

Im vorhergehende Beispiel Visual C# .NET wird die Ausgabe von XML-Dokumenten mit derselben Struktur veranschaulicht.

Zusammenführen von XML-Dokumenten, die unterschiedliche Strukturen haben

  1. Öffnen Sie "Books2.xml", und Ersetzen Sie den XML-Code mit den folgenden XML-Code:
    <?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 Visual C# .NET Projekt erneut. Beachten Sie, dass die Knoten aus dem zweiten Dokument ("Books2.xml") an das erste XML-Dokument ("Books1.xml") angehängt werden.

Zusammenführen von XML-Dokumente mit ähnlicher Struktur, in dem zweites Dokument zusätzliche Elemente enthält

  1. Öffnen Sie "Books2.xml", und Ersetzen Sie den XML-Code mit den folgenden XML-Code:
    <?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 Visual C# .NET Projekt erneut. 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, in dem zweites Dokument Attribute enthält

  1. Öffnen Sie "Books2.xml", und Ersetzen Sie den XML-Code mit den folgenden XML-Code:
    <?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 Visual C# .NET Projekt erneut. Beachten Sie, dass die Knoten aus dem zweiten Dokument an das erste XML-Dokument angehängt sind, und die Struktur wie das erste XML-Dokument ist.

Zusammenführen von XML-Dokumente mit ähnlicher Struktur, in dem erstes Dokument Attribute enthält

  1. Ändern Sie den Visual C#-Code folgendermaßen, 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 Visual C# .NET Projekt erneut. Beachten Sie, dass das resultierende XML-Dokument die Knoten aus "Books1.xml" an "Books2.xml" anfügt. Beachten Sie außerdem, dass alle Knoten Buch das Attribut "Genre" enthalten.

    Aus diesem Grund ist abhängig von der Struktur des ersten XML-Dokuments, das zweite XML-Dokument geändert, sodass die resultierende XML mehr Bedeutung besitzt.

Informationsquellen

Weitere Informationen finden Sie der Microsoft Knowledge Base:
286817 Zusammenführen von Daten in zwei XML-Dokumenten durch Programming Document Object Model (DOM)

Eigenschaften

Artikel-ID: 311530 - Geändert am: Donnerstag, 29. November 2012 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Keywords: 
kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 311530
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com