Webアプリ開発事始 第20回

XMLとプログラミング(1)
~DOMによるXML文書の操作
長谷川裕行
有限会社 手國堂

DOMとDOMDocumentオブジェクト

プログラミング言語からXMLを扱うには、DOM(Document Object Model)と呼ばれるプログラミング・インターフェイスを利用するのが最も簡単です。DOMはInternet Explorer 5.x以降のXMLパーサ(MSXML)に実装されています。


- DOMDocumentオブジェクト -

プログラミング言語からDOMを利用するには、DOMDocumentオブジェクトのインスタンスを生成し、そのプロパティとメソッドを操作します。DOMDocumentはXML文書に記述されたデータとデータ構造を保持するオブジェクトで、Java、JavaScript、VBScript、C#、C++などのプログラミング言語からXML文書に記述されたデータを取り出して利用できるようになります。

DOMはW3Cで規定されたオブジェクトの操作手段であり、公開されたAPIを利用することで、各種プログラミング言語からXML文書を操作できます。しかし実用的で小回りの利くアプリケーションを作るには、機能不足と思える面もあります。そのため、Internet ExplorerではW3Cの規定に独自の拡張APIを加えています。


- インスタンスの生成 -

アプリケーションからDOMDocumentを扱うには、まずオブジェクトのインスタンスを生成し、そこに既存のXML文書を読み込ませたり、あるいはXML形式に変換したデータをオブジェクトを介して書き出したりすることになります。

例えばJavaなら、以下のようにしてDOMDocumentオブジェクトのインスタンスを生成します。

  var objDoc = new ActiveXObject
          ("Msxml2.DOMDocument");

Visual Basicなら以下のようになるでしょう。

  Dim Doc As MSXML2.DOMDocument
  Doc = New MSXML2.DOMDocument()

しかし、HTML文書中でJavaScriptなどの言語を使ってXML文書を扱うなら、もっと簡単な方法があります。XMLデータアイランド(XML Data Island)と呼ばれる機能を利用する方法です。


- データアイランドの生成 -

HTML文書中で<xml>タグによってXML文書を定義すると、XMLデータアイランドが生成されます。書式は以下のようになります。

  <xml id=識別名>
   …XML文書…
  </xml>

“id”には文字列型の識別名を与えます。これがXML IDとなり、データアイランドはDOMDocumentオブジェクトとして操作できます(実際には、タグに囲まれた範囲のXML文書に対してデータが解析された後、DOMDocumentオブジェクトが生成されます)。

例えば、以下のような形です。

  <xml id="XMLMembers">
   <社員>
   <番号>1001</番号>
   <氏名>山中 重義</氏名>
   <所属>総務部</所属>
   <役職>部長</役職>
   </社員>
  </xml>


- XMLデータアイランドの生成 -

XML文書を別ファイルとした場合、“src”オプションによってファイルのパスを指定することもできます。

  <xml id=識別名 src=パス></xml>

XML文書は通常HTMLファイルとは別のファイルとなっていますから、既存のXML文書を読み込んで処理する場合、こちらの形式の方が一般的でしょう。以下のような感じです。

  <xml id="XMLMembers" src="members.xml"></xml>

その他、先に空のデータアイランドを定義しておいて、スクリプトでDOMDocumentのloadメソッドを使い、外部のXML文書を読み込ませることもできます。

  <xml id="XMLMembers"></xml>
      :
  xml.load("members.xml");

また、<script>タグでデータアイランドを定義することも可能です。

  <script language="xml" id="XMLItems">
   <社員>
   <番号>1001</番号>
   <氏名>山中 重義</氏名>
   <所属>総務部</所属>
   <役職>部長</役職>
   </社員>
  </script>


- DOMDocumentオブジェクトのプロパティとメソッド -

このように、HTML文書でスクリプトを使えば、XMLデータアイランドを介してXML文書を簡単に扱えるようになります。

以下に、DOMDocumentオブジェクトの主なプロパティとメソッドを掲げておきます。DOMDocumentでは、XML文書内のデータはルート要素から始まる階層構造として参照できます。

表1:DOMDocumentオブジェクトの主なプロパティ
表2:DOMDocumentオブジェクトの主なメソッド


トップページ
DOMとDOMDocumentオブジェクト
DOMDocumentオブジェクト
インスタンスの生成
データアイランドの生成
XMLデータアイランドの生成
DOMDocumentオブジェクトのプロパティとメソッド
各種言語とDOMDocument
サンプル~スタイルシートの切り替え
あとがき

Copyright © MESCIUS inc. All rights reserved.