如何使用視覺化 C#.net 使用成兩個 XML 文件將資料合併

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:311530
本文已封存。本文係以「現狀」提供且不會再更新。
結論
本文將逐步示範如何使用資料集物件來合併兩個 XML 文件。資料集物件都集中到支援中斷連線,分散式資料案例與 ADO.NET。資料集是記憶體常駐表示提供一致、 關聯式程式設計模型,與資料來源無關的資料。資料集表示一組完整的資料,包括相關聯的資料表、 條件約束和資料表間的關係。

back to the top

需求

以下概括列出建議的硬體、 軟體、 網路基礎結構,以及您所需要的 service pack:
  • Microsoft Windows XP]、 [Windows 2000 中或 [套用此 Hotfix Windows NT 4.0 6a (SP6a)
  • Microsoft Visual Studio.net
本文假設您已熟悉下列主題:
  • 視覺 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. 複製並貼入 Books2.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>   </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

若要建立視覺 C#.net 應用程式的步驟

  1. 開始 Visual Studio 的.net,然後建立新的視覺 C# 主控台應用程式專案。
  2. 將下列程式碼加入至程式碼] 視窗的頂端:
    using System;using System.Xml;using System.IO;using System.Data ;					
  3. 複製並貼上下列程式碼在靜態 void Main (字串 [] 引數):
    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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件 (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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件的節點都會附加至第一個 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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件的節點都會附加至第一次的 XML 文件,且結構相同的第一個 XML 文件。
back to the top

合併具有類似結構的結構,其中的第一個文件包含屬性的 XML 文件

  1. 以下列方式修改視覺化 C# 程式碼,使 Books1.xml 會附加至 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. 再次執行視覺化 C#.net 專案。請注意結果的 XML 文件附加從 Books1.xml 到 Books2.xml 的節點。此外,請注意所有活頁簿節點包含 「 類型 」 屬性。

    因此,取決於第一個 XML 文件的結構,第二個 XML 文件被修改,讓 XML 結果會更有意義。
back to the top
参考
詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
286817 如何以程式的文件物件模型 (DOM) 合併兩個 XML 文件中的資料
back to the top

警告:本文為自動翻譯

內容

文章識別碼:311530 - 最後檢閱時間:12/07/2015 08:06:28 - 修訂: 1.0

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

  • kbnosurvey kbarchive kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtzh
意見反應