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

Переводы статьи Переводы статьи
Код статьи: 311530 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

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

Требования к

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

Создайте файл 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, а затем нажмите кнопку Сохранить.

Создайте файл 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, а затем нажмите кнопку Сохранить.

Шаги для создания визуального приложение .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.

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

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

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

Объединение документов 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).

Объединение документов 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.

Объединение документов 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-документа.

Объединение документов 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 является более значимой.

Ссылки

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

Свойства

Код статьи: 311530 - Последний отзыв: 30 августа 2012 г. - Revision: 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
Ключевые слова: 
kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 311530

Отправить отзыв

 

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