プログラミング言語から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オブジェクトの主なメソッド
|
|
|