Visual C# .net で System.Xml を使用する 2 つの XML ドキュメントからデータをマージするには、方法

この記事は、以前は次の ID で公開されていました: JP311530
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:311530
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
この資料では、 DataSetオブジェクトを使用して、2 つの XML 文書をマージする方法を示しています。DataSetオブジェクトがサポートする中心的な切断でシナリオと ADO.NET を配布しました。データセットはデータ ソースに関係なく、一貫性のある、リレーショナル プログラミング モデルを提供するデータのメモリ常駐表現です。DataSetは関連テーブル、制約、およびテーブル間のリレーションシップを含むデータの完全なセットを表します。

back to the top

要件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要な service pack を以下に示します。
  • Microsoft Windows XP、Windows 2000、または Windows NT 4.0 Service Pack 6a (SP6a)
  • Microsoft Visual Studio .net
この資料では、次のトピックに精通しているを前提としています。
  • Visual C# .net の構文
  • 拡張マークアップ言語 (XML)
back to the top

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>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

Visual C# .net アプリケーションを作成する手順

  1. Visual Studio .net を起動し、新しい視覚 C# のコンソール アプリケーション プロジェクトを作成します。
  2. 次のコードをコード ウィンドウの先頭に追加します。
    using System;using System.Xml;using System.IO;using System.Data ;					
  3. コピーして、静的な無効メイン (文字列 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 を末尾に追加されますを確認します。
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. Visual C# .net のプロジェクトを再度実行します。最初の XML 文書 (Books1.xml) ノードから 2 番目の文書 (Books2.xml) が追加されることに注意してください。
back to the top

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>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# .net のプロジェクトを再度実行します。最初の XML 文書の 2 番目の文書のノードが追加されることに注意してください。
back to the top

属性の 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>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# .net のプロジェクトを再度実行します。最初の XML ドキュメントには、2 番目の文書のノードが追加され、最初の XML 文書と同じ構造であるに注意してください。
back to the top

属性の最初の文書のような構造を持つ 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# .net のプロジェクトを再度実行します。結果の XML ドキュメントが Books2.xml に Books1.xml のノードを追加することに注意してください。さらに、Book のノードすべてに"genre"属性が含まれていることを確認します。

    したがって、結果の XML がわかりやすいように、最初の XML ドキュメントの構造によっては、第 2 の XML 文書が変更されます。
back to the top
関連情報
詳細については、「サポート技術情報」資料を参照するには、次の文書番号をクリックしてください。
286817 ドキュメント オブジェクト モデル (DOM) のプログラミングによって 2 つの XML ドキュメント内のデータをマージするには、方法
back to the top

警告: この記事は自動翻訳されています

プロパティ

文書番号:311530 - 最終更新日: 12/07/2015 08:06:26 - リビジョン: 1.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

  • kbnosurvey kbarchive kbhowtomaster kbio kbsystemdata kbmt KB311530 KbMtja
フィードバック