Объединение данных из двух XML-документов с помощью System.Xml, используя Visual C# .net

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке: 311530
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Аннотация
В этой статье показано, как использовать объект DataSet для слияния двух XML-документов. Набор данных объекта является основой поддержки отключен, распределенных сценариях данные с ADO.NET. Используемый набор данных представляет данные, которые предоставляет модель программирования согласованы, реляционной независимо от источника данных. DataSet представляет полный набор данных, включая связанные таблицы, ограничения и связи между таблицами.

back to the top

Требования к

В следующем списке представлены оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, которые необходимы:
  • Microsoft Windows XP, Windows 2000 или Windows NT 4.0 с пакетом обновления 6a (SP6a)
  • Microsoft Visual Studio .net
Предполагается, что вы знакомы с следующие темы:
  • Синтаксис Visual C# .net
  • Расширяемый язык разметки (XML)
back to the top

Создайте файл Books1.xml

  1. Из меню Пуск , выберите пункт выполнить, введите Notepad.exe, а затем нажмите кнопку ОК.
  2. Выделить следующий код, щелкните код правой кнопкой мыши и выберите команду Копировать. В программе «Блокнот» выберите в меню Правка выберите Вставить.
    <?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. В меню файл выберите команду Сохранить.
  4. В диалоговом окне Сохранить как в раскрывающемся списке Тип файла выберите Все файлы. В поле Имя файла введите Books1.XML, а затем нажмите кнопку Сохранить.
back to the top

Создайте файл Books2.xml

  1. В программе «Блокнот» создайте новый текстовый файл с именем Books2.xml.
  2. Скопируйте и вставьте следующий XML-код в 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. В меню файл выберите команду Сохранить.
  4. В диалоговом окне Сохранить как в раскрывающемся списке Тип файла выберите Все файлы. В поле Имя файла введите Books2.XML, а затем нажмите кнопку Сохранить.
back to the top

Шаги для создания визуального приложение .net C#

  1. Запустить Visual Studio .net, а затем создайте новый проект приложения консоли Visual C#.
  2. Добавьте следующий код в верхнюю часть окна кода:
    using System;using System.Xml;using System.IO;using System.Data ;					
  3. Скопируйте и вставьте следующий код в 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. Построение и запуск приложения. Обратите внимание, что отображается сообщение «Завершить объединение документов XML» в окне консоли.
  5. Закройте окно консоли. Обратите внимание, что файл Books.xml создается в указанном пути.
  6. Откройте файл Books.xml. Обратите внимание, что данные из Books2.xml добавляется в конец, чтобы Books1.xml.
back to the top

Различные сценарии XML документа

Объединение документов XML, которые имеют одинаковую структуру

Предыдущий пример Visual C# .net демонстрируется вывод XML-документов с помощью той же структуры.

back to the top

Объединение документов XML, которые имеют различные структуры

  1. Откройте Books2.xml и замените следующий 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. Сохраните Books2.xml.
  3. Снова запустите проект Visual C#. Обратите внимание, что узлы из второго документа (Books2.xml) добавляются в конец первого XML-документа (Books1.xml).
back to the top

Объединение документов XML с подобной структурой, где второй документ содержит дополнительные элементы

  1. Откройте Books2.xml и замените следующий 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. Сохраните Books2.xml.
  3. Снова запустите проект Visual C#. Обратите внимание, что узлы из второго документа добавляются в конец первого документа XML.
back to the top

Объединение документов XML с подобной структурой, где второй документ содержит атрибуты

  1. Откройте Books2.xml и замените следующий 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. Сохраните Books2.xml.
  3. Снова запустите проект Visual C#. Обратите внимание, что узлы из второго документа добавляются в конец первого документа XML, и структуры так же, как первый XML-документа.
back to the top

Объединение документов XML с подобной структурой, где первый документ содержит атрибуты

  1. Таким образом, чтобы Books1.xml добавляется к Books2.xml следующим образом измените код Visual C#:
    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. Снова запустите проект Visual C#. Обратите внимание на то, что результирующий XML-документ добавляет узлов от Books1.xml до Books2.xml. Кроме того Обратите внимание, что все узлы книг содержат атрибут «жанр».

    Таким образом в зависимости от структуры первого документа XML, второго XML-документа изменяется таким образом, чтобы результирующий XML является более значимой.
back to the top
Ссылки
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
286817 Как объединить данные в двух XML-документов от программирования объектной модели документов (DOM)
back to the top

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 311530 — последний просмотр: 12/07/2015 08:06:27 — редакция: 6.0

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtru
Отзывы и предложения