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

文章翻譯 文章翻譯
文章編號: 311530 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步示範如何使用資料集物件來合併兩個 XML 文件。資料集物件都集中到支援中斷連線,分散式資料案例與 ADO.NET。資料集是記憶體常駐表示提供一致、 關聯式程式設計模型,與資料來源無關的資料。資料集表示一組完整的資料,包括相關聯的資料表、 條件約束和資料表間的關係。

需求

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

若要建立視覺 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 結尾。

不同的 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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件 (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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件的節點都會附加至第一個 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. 再次執行視覺化 C#.net 專案。請注意,從第二個文件的節點都會附加至第一次的 XML 文件,且結構相同的第一個 XML 文件。

合併具有類似結構的結構,其中的第一個文件包含屬性的 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 結果會更有意義。

?考

詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
286817 如何以程式的文件物件模型 (DOM) 合併兩個 XML 文件中的資料

屬性

文章編號: 311530 - 上次校閱: 2012年8月30日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 標準版
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
關鍵字:?
kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:311530
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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