V tomto článku vám ukáže, ako používať DataSet objekt na zlúčenie dvoch dokumentov XML. DataSet objekt je zásadný pre podporu odpojený, distribuované údajových scenárov s ADO.NET. Množina údajov je vyobrazenie rezidentné údaje, ktorá poskytuje jednotnú, relačnej programového modelu bez ohľadu na zdroj údajov. Množina údajov predstavuje úplný súbor údajov, vrátane súvisiacich tabuliek, obmedzenia a vzťahy medzi tabuľkami.
Požiadavky
Nasledujúci zoznam uvádza odporúčané hardvér, softvér, sieťovú infraštruktúru a balíky service pack, ktoré potrebujete:
Microsoft Windows XP, Windows 2000 alebo Windows NT 4.0 Service Pack 6a (SP6a)
Microsoft Visual Studio .net
Tento článok predpokladá, že ste oboznámení s v nasledovných témach:
Visual C# .net syntax
Extensible Markup Language (XML)
Vytvoriť súbor Books1.xml
V ponuke Štart kliknite na položku spustiť, typu Notepad.exe, a potom kliknite na tlačidlo OK.
Zvýraznite nasledujúci kód, kliknite pravým tlačidlom myši kód a kliknite na tlačidlo Kopírovať. V programe Poznámkový blok, v ponuke úpravy kliknite na príkaz Prilepiť.
V Uložiť ako dialógovom okne v rozbaľovacom poli Typ súboru , kliknite na položku Všetky súbory. Do poľa Názov súboru zadajte Books1.XML, a potom kliknite na tlačidlo Uložiť.
Vytvoriť súbor Books2.xml
V programe Poznámkový blok, vytvoriť nový textový súbor s názvom Books2.xml.
Skopírujte a prilepte nasledujúci XML do Books2.xml:
V Uložiť ako dialógovom okne v rozbaľovacom poli Typ súboru , kliknite na položku Všetky súbory. Do poľa Názov súboru zadajte Books2.XML, a potom kliknite na tlačidlo Uložiť.
Postup vytvorenia Visual C# .net uplatňovanie
Spustiť Visual Studio .net, a potom vytvorte nový projekt Visual C# konzolovú aplikáciu.
Pridať nasledujúci kód do hornej časti okna s kódom:
using System;
using System.Xml;
using System.IO;
using System.Data ;
Skopírujte a vložte nasledujúci kód v 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();
Vytvoriť a spustiť aplikáciu. Všimnite si, že v okne konzoly sa zobrazí hlásenie "Dokončiť zlúčenie dokumentov XML".
Zatvorte okno konzoly. Všimnite si, že súbor Books.xml je vytvorený na ceste, ktoré zadáte.
Otvorte Books.xml. Všimnite si, že údaje z Books2.xml je pridaný na koniec na Books1.xml.
Rôzne scenáre XML dokumentu
Zlúčiť dokumenty XML, ktoré majú rovnakú štruktúru
Predchádzajúci Visual C# .net vzorky preukáže výstup XML dokumentov s rovnakú štruktúru.
Znova spustiť Visual C# .net projektu. Všimnite si, že uzly z druhého dokumentu (Books2.xml) sú pripojené do prvého dokumentu XML (Books1.xml).
Zlúčiť dokumenty XML s podobnou štruktúrou, kde druhý dokument obsahuje ďalšie prvky
Otvorte Books2.xml a nahradiť tieto 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>
Uložiť Books2.xml.
Znova spustiť Visual C# .net projektu. Všimnite si, že uzly z druhý dokument sa pripojí k prvej XML dokumentu.
Zlúčiť dokumenty XML s podobnou štruktúrou, ak druhý doklad obsahuje atribúty
Znova spustiť Visual C# .net projektu. Všimnite si, že uzly z druhý dokument sa pripájajú na prvý dokument XML, a štruktúra je rovnaký ako prvý dokument XML.
Zlúčiť dokumenty XML s podobnou štruktúrou, ak prvý dokument obsahuje atribúty
Takto upraviť kód Visual C#, tak, že Books1.xml je pripojená 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();
Znova spustiť Visual C# .net projektu. Všimnite si, že výsledný dokument XML pripojí uzly z Books1.xml na Books2.xml. Okrem toho, oznámenie, že všetky uzly knihy obsahujú atribút "žáner".
Preto, v závislosti od štruktúru prvú XML dokumentu, druhý dokument XML sa mení tak, aby výsledná XML je väčší zmysel.
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 311530