[HOW TO ベータ: System.Xml による Visual Basic .NET での 2 つの XML ドキュメントからのデータのマージ

文書翻訳 文書翻訳
文書番号: 308066 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、 DataSet オブジェクトを使用して 2 つの XML ドキュメントを結合する方法について説明します。 DataSet 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 の [ スタート ] メニューから 実行 ] をクリックし、 メモ帳 を入力して [ OK] をクリックします。
  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. コピーし、次の 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>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. アプリケーションをビルドし、実行します。 コンソール ウィンドウに、メッセージ "Completed merging XML documents" が表示されます。
  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 プロジェクトを再度実行します。 2 番目の文書 (Books2.xml) からのノードは、最初の XML ドキュメント (Books1.xml) に追加されることを確認します。

類似構造をもつ XML 文書をマージする (第 2 の 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 プロジェクトを再度実行します。 第 2 の文書のノードが、第 1 の XML 文書に付加されることに注意してください。

第 2 の文書の属性がある場合で同等の構造した 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 プロジェクトを再度実行します。 第 2 の文書のノードが第 1 の XML 文書に付加され、構造が第 1 の XML 文書と同じになることに注意してください。

類似構造をもつ XML 文書をマージする (第 1 の XML 文書に属性がある場合)

  1. Books1.xml Books2.xml に追加されるように、Visual Basic コードをよう変更:
            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 文書では、Books1.xml のノードが Books2.xml に付加されることに注意してください。 さらに、Book のノードすべてに "genre" 属性が含まれている点にも注意してください。

    このように、第 1 の XML 文書の構造に従って第 2 の XML 文書が変更され、結果として得られる XML にはより多くの情報が含まれることになります。

関連情報

関連情報については、次の文書番号をクリックして Microsoft Knowledge Base を参照してください:
286817方法: ドキュメント オブジェクト モデル (DOM) をプログラミングによって 2 つの 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
キーワード:?
kbhowtomaster kbmt KB308066 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:308066
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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