Document Object Model (DOM) のプログラミングによって 2 つの XML ドキュメントのデータをマージする方法

文書翻訳 文書翻訳
文書番号: 286817 - 対象製品
この記事は、以前は次の ID で公開されていました: JP286817
すべて展開する | すべて折りたたむ

概要

この資料では、MSXML Document Object Model (DOM) のプログラミングによって 2 つの同じ XML ドキュメントに含まれるデータをマージする方法を示す Visual Basic のサンプル コードについて説明します。

詳細

XML ドキュメントの処理では、しばしば複数の同じ XML ドキュメントに含まれるデータを 1 つの XML ドキュメントにマージする必要があります。この資料に示すコードと方法を拡張して、3 つ以上の XML ドキュメントに含まれるデータをマージすることもできます。 新しいバージョンの MSXML がサイド バイ サイド モードでインストールされている場合、サンプル コードを実行するには、そのバージョンのグローバル一意識別子 (GUID) または ProgID を明示的に使用する必要があります。たとえば、MSXML 4.0 はサイド バイ サイド モードでのみインストール可能です。MSXML 4.0 パーサーを使用してサンプル コードを実行するために必要なコード変更の詳細について参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
305019 [INFO] MSXML 4.0 特有の GUID および ProgID について
  1. メモ帳で空のテキスト ファイルを開きます。
  2. 以下の XML コードをコピーしてメモ帳に貼り付け、xmlbooks1.xml という名前で保存します。
    <?xml version="1.0"?>
    <Books>
       <Book>
          <Title>XML Step By Step</Title>
          <Publisher>MS Press</Publisher>
       </Book>
       <Book>
          <Title>Developing XML Solutions</Title>
          <Publisher>MS Press</Publisher>
       </Book>
    </Books>
    					
  3. メモ帳で新しいテキスト ファイルを開きます。
  4. 以下の XML コードをコピーしてメモ帳に貼り付け、xmlbooks2.xml という名前で保存します。
    <?xml version="1.0"?>
    <Books>
       <Book>
          <Title>Beginning XML</Title>
          <Publisher>Wrox</Publisher>
       </Book>
       <Book>
          <Title>Professional XML</Title>
          <Publisher>Wrox</Publisher>
       </Book>
    </Books>
    					
  5. Visual Basic 6.0 で新しい標準 EXE プロジェクトを作成します。デフォルトで Form1 が作成されます。
  6. [プロジェクト] メニューの [参照設定] をクリックし、[Microsoft XML, v3.0] またはそれ以降への参照を設定します。
  7. Form1 にコマンド ボタンを配置します。デフォルトで Command1 が作成されます。
  8. 以下のコードをコピーしてコマンド ボタンの Click イベント プロシージャに貼り付けます。
    ' In the ProgIDs below, change 30 to reflect the installed version of the Microsoft XML Parser.
    ' For example, use Dim doc1 As MSXML2.DOMDocument40 for MSXML 4.
    
    Dim doc1 As MSXML2.DOMDocument30
    Dim doc2 As MSXML2.DOMDocument30
    Dim doc2Node As MSXML2.IXMLDOMNode
    
    Set doc1 = New MSXML2.DOMDocument30
    Set doc2 = New MSXML2.DOMDocument30
    
    doc1.Load "d:\xmlbooks1.xml"
    doc2.Load "d:\xmlbooks2.xml"
    
    For Each doc2Node In doc2.documentElement.childNodes
      doc1.documentElement.appendChild doc2Node
    Next
    
    MsgBox doc1.xml
    
    doc1.save "d:\AllXMLBooks.xml"
    					
  9. 上のコードは、手順 1. 〜 4. で作成された 2 つの XML ドキュメントを 2 つの MSXML DOMDocument オブジェクトに読み込みます。次に、xmlbooks2.xml のデータを、xmlbooks1.xml のデータを含む DOMDocument オブジェクトのインスタンスにマージします。この処理は、DOMDocument オブジェクト doc2 のドキュメント要素の子ノードをループ処理し、DOMDocument オブジェクト doc1 のドキュメント要素にそれぞれ追加することによって実行されます。最終的には、マージされた XML がメッセージ ボックスに表示され、ディスク内のファイルに保持されます。
  10. Microsoft Internet Explorer で AllXMLBooks.xml を開き、マージされた XML ドキュメントを表示します。次の XML が表示されます。
    <?xml version="1.0"?>
    <Books>
    	<Book>
    		<Title>XML Step By Step</Title>
    		<Publisher>MS Press</Publisher>
    	</Book>
    	<Book>
    		<Title>Developing XML Solutions</Title>
    		<Publisher>MS Press</Publisher>
    	</Book>
    	<Book>
    		<Title>Beginning XML</Title>
    		<Publisher>Wrox</Publisher>
    	</Book>
    	<Book>
    		<Title>Professional XML</Title>
    		<Publisher>Wrox</Publisher>
    	</Book>
    </Books>
    					

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 286817 (最終更新日 2004-07-01) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 286817 - 最終更新日: 2005年9月26日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft XML Parser 2.0
  • Microsoft XML Parser 2.5
  • Microsoft XML Parser 2.6
  • Microsoft XML Parser 3.0
  • Microsoft XML Core Services 4.0
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 4
  • Microsoft Visual Basic 6.0 Professional Edition
キーワード:?
kbhowto KB286817
"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