Jak sloučit Data z dvěma dokumenty XML pomocí System.Xml pomocí aplikace Visual C# .NET

Souhrn

Tento článek ukazuje, jak sloučit dva dokumenty XML pomocí objektu DataSet . DataSet objektu je centrální podpůrné odpojen, distribuovaných dat scénáře s ADO.NET. Objekt DataSet je rezidentní v paměti reprezentace data, která poskytuje relační, konzistentní programovací model bez ohledu na zdroj dat. Objekt DataSet představuje kompletní sadu dat, včetně souvisejících tabulek, omezení a vztahy mezi tabulkami.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:

  • Microsoft Windows XP, Windows 2000 nebo Windows NT 4.0 Service Pack 6a (SP6a)
  • Microsoft Visual Studio .NET
Tento článek předpokládá, že jste obeznámeni s následující témata:

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

Vytvořit soubor Books1.xml

  1. Z nabídky Start systému Windows klepněte na příkaz Spustit, zadejte Notepad.exea klepněte na tlačítko OK.
  2. Zvýraznění následující kód, klepněte pravým tlačítkem myši kód a potom klepněte na příkaz Kopírovat. V programu Poznámkový blok klepněte v nabídce Úpravy na příkaz Vložit.
    <?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. V nabídce soubor klepněte na tlačítko Uložit.
  4. V dialogovém okně Uložit jako v poli rozevíracího seznamu Uložit jako typ klepněte na položku Všechny soubory. Do textového pole Název souboru zadejte Books1.xmla klepněte na tlačítko Uložit.

Vytvoření souboru Books2.xml

  1. V programu Poznámkový blok vytvořte nový textový soubor s názvem Books2.xml.
  2. Zkopírujte a vložte následující kód XML do 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. V nabídce soubor klepněte na tlačítko Uložit.
  4. V dialogovém okně Uložit jako v poli rozevíracího seznamu Uložit jako typ klepněte na položku Všechny soubory. Do textového pole Název souboru zadejte Books2.xmla klepněte na tlačítko Uložit.

Postup vytvoření aplikace Visual C# .NET

  1. Spusťte aplikaci Visual Studio .NET a pak vytvořte nový projekt Visual C# konzolové aplikace.
  2. Přidejte následující kód horní okno kód:
    using System;using System.Xml;
    using System.IO;
    using System.Data ;

  3. Zkopírujte a vložte následující kód do statické 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. Sestavte a spusťte aplikaci. Všimněte si, že se v okně konzoly zobrazí zprávu "Dokončeno slučování dokumentů XML".
  5. Zavřete okno konzoly. Všimněte si, že soubor Books.xml je vytvořen v zadané cestě.
  6. Otevřete soubor Books.xml. Všimněte si, že data z Books2.xml připojen na konec k Books1.xml.

Scénáře různých XML dokumentů

Sloučit dokumenty XML, které mají stejnou strukturu

V předchozím příkladu Visual C# .NET ukazuje výstup XML dokumentů se stejnou strukturou.

Sloučit dokumenty XML, které mají různé struktury

  1. Otevřete Books2.xml a nahraďte následující XML 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. Uložte Books2.xml.
  3. Znovu spuste projektu Visual C# .NET. Všimněte si, že uzlů z druhého dokumentu (Books2.xml) jsou připojena k první dokument XML (Books1.xml).

Sloučit dokumenty XML s podobnou strukturou, kde druhý dokument obsahuje další prvky

  1. Otevřete Books2.xml a nahraďte následující XML 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. Uložte Books2.xml.
  3. Znovu spuste projektu Visual C# .NET. Všimněte si, že uzlů z druhého dokumentu jsou připojena k první dokument XML.

Sloučit dokumenty XML s podobnou strukturou, kde druhý dokument obsahuje atributy

  1. Otevřete Books2.xml a nahraďte následující XML 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. Uložte Books2.xml.
  3. Znovu spuste projektu Visual C# .NET. Všimněte si, že uzlů z druhého dokumentu jsou připojena k první dokument XML a struktura je stejná jako první dokument XML.

Sloučit dokumenty XML s podobnou strukturou, kde první dokument obsahuje atributy

  1. Takto upravte kód jazyka Visual C# takže Books1.xml připojen k 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. Znovu spuste projektu Visual C# .NET. Všimněte si, že výsledný dokument XML připojí uzly Books1.xml Books2.xml. Dále si všimněte, že všechny uzly knihy obsahovat atribut "žánr".

    Proto podle struktury dokumentu XML prvního, druhého dokumentu XML modifikován tak, aby výsledné XML je smysluplnější.

Odkazy

Další informace získáte klepnutím na níže uvedené číslo článku znalostní báze Microsoft Knowledge Base:

286817 jak sloučit Data v dvěma dokumenty XML pomocí programování modelu objektu dokumentu (DOM)
Vlastnosti

ID článku: 311530 - Poslední kontrola: 20. 1. 2017 - Revize: 2

Váš názor