如何: Beta 版: 從兩個 XML 文件的資料合併使用 Visual Basic.NET System.xml

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

在此頁中

結論

本文將告訴您,如何使用 DataSet 物件來合併兩個 XML 文件。資料集 物件會中央支援中斷連線,分佈使用 ADO.NET 資料案例。資料集 是提供一個一致、 關聯式程式設計模型無論資料來源的資料的記憶體常駐表示。資料集 表示一組完整的包括相關的資料表、 條件約束及資料表間的關聯性的資料。

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Microsoft Windows XP、 Windows 2000 或 Windows NT 4.0 Service Pack 6a (SP6a)
  • Microsoft Visual Studio.NET
本文假設您已熟悉下列主題:
  • Visual Basic.NET 語法
  • 可延伸標記語言 (XML)

建立 Books1.xml 檔案

  1. 從 Windows [開始] 功能表按一下 [執行],鍵入 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>Ralls, Kim</author>
          <title>Midnight Rain</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>Thurman, Paula</author>
          <title>Splish Splash</title>
          <genre>Romance</genre>
          <price>4.95</price>
       </book>
    </catalog>
    					
  3. 在 [檔案] 功能表上按一下 [儲存]。
  4. 在 [另 ] 對話方塊中,[檔案類型] 下拉式清單方塊中按一下 [所有檔案]。在 [檔案名稱] 文字方塊中輸入 Books2.xml,然後按一下 [儲存]。

建立 Visual Basic.NET 應用程式的步驟

  1. 啟動 Visual 的 Studio.NET 並建立新的 Visual Basic 主控台應用程式專案。
  2. 將下列程式碼加入至程式碼] 視窗的頂端:
    Imports System.Xml
    					
  3. 複製並貼上下列程式碼在 Sub Main 程序:
            Dim xmlreader1 As New XmlTextReader("C:\Books1.xml")
    
            Dim xmlreader2 As New XmlTextReader("C:\Books2.xml")
    
            Dim ds1 As New DataSet()
            Try
                ds1.ReadXml(xmlreader1)
    
                Dim ds2 As New DataSet()
                ds2.ReadXml(xmlreader2)
    
                ds1.Merge(ds2)
                ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)
                Console.WriteLine("Completed merging XML documents")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
            Console.Read()
    					
  4. 建置並執行應用程式。請注意 「 已完成合併 XML 文件 」 的訊息出現在 [主控台] 視窗中。
  5. 關閉主控台視窗。請注意 Books.xml 檔案會建立在指定的路徑。
  6. 開啟 Books.xml。請注意 Books2.xml 來自資料會附加至 Books1.xml 到結尾。

不同的 XML 文件案例

合併有相同結構的 XML 文件

先前的 Visual Basic.NET 範例會示範具有相同結構的 XML 文件的輸出。

合併具有不同結構的 XML 文件

  1. 開啟 Books2.xml,並以下列的 XML 取代 XML:
    <?xml version="1.0" ?>
    <SampleData>
    <Customer>
              <CustomerName>Bill Gates</CustomerName>
              <PricePerUnit>5.95</PricePerUnit>
              <ClosingDate>2001-12-16</ClosingDate>
    </Customer>
    <Customer>
              <CustomerName>Bill Gates</CustomerName>
              <PricePerUnit>5.95</PricePerUnit>
              <ClosingDate>2001-12-16</ClosingDate>
    </Customer>
    </SampleData>
    					
  2. 儲存 Books2.xml。
  3. 再次執行 Visual Basic.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>Thurman, Paula</author>
          <title>Splish Splash</title>
          <genre>Romance</genre>
          <price>4.95</price>
          <publish_date>2000-11-02</publish_date>
          <description>A deep-sea diver finds true love twenty 
          thousand leagues beneath the sea.</description>
       </book>
    </catalog>
    					
  2. 儲存 Books2.xml。
  3. 再次執行 Visual Basic.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>Thurman, Paula</author>
          <title>Splish Splash</title>
          <price>4.95</price>
       </book>
       <book id="bk108" genre="Horror">
          <author>Knorr, Stefan</author>
          <title>Creepy Crawlies</title>
          <price>4.95</price>
       </book>
       </catalog>
    					
  2. 儲存 Books2.xml。
  3. 再次執行 Visual Basic.NET 專案。注意: 從第二個文件節點附加到第一份 XML 文件,而且結構與第一份 XML 文件相同。

合併與其中第一份文件包含屬性的類似結構的 XML 文件

  1. 以下列方式修改 Visual Basic 程式碼,使 Books1.xml 會附加到 Books2.xml:
            Dim xmlreader1 As New XmlTextReader("C:\Books2.xml")
    
            Dim xmlreader2 As New XmlTextReader("C:\Books1.xml")
    
            Dim ds1 As New DataSet()
            Try
                ds1.ReadXml(xmlreader1)
    
                Dim ds2 As New DataSet()
                ds2.ReadXml(xmlreader2)
    
                ds1.Merge(ds2)
                ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)
                Console.WriteLine("Completed merging XML documents")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
            Console.Read()
    					
  2. 再次執行 Visual Basic.NET 專案。請注意結果 XML 文件附加到 Books2.xml Books1.xml 從節點。在另外請注意所有活頁簿節點包含 「 類型 」 屬性。

    因此,取決於第一份 XML 文件的結構,第二份 XML 文件被修改,結果 XML 是更有意義的名稱。

?考

如需詳細資訊按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
286817HOWTO: 由程式設計文件物件模型 (DOM) 合併兩個 XML 文件中的資料

屬性

文章編號: 308066 - 上次校閱: 2003年9月4日 - 版次: 2.3
這篇文章中的資訊適用於:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
關鍵字:?
kbmt kbhowtomaster KB308066 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:308066
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