Document Object Mode
Document Object Mode (DOM、どむ)とは、W3Cから勧告されているHTML文書やXML文書などをアプリケーションから読み書きする際に用いるAPI仕様である。
W3CではAPIの仕様を定義しているのみで、特定のプログラム言語を対象としたものではない。DOMの実装は各メーカーに委ねられており、DOMを実装したXMLパーサーが各メーカーから提供されている。
基本的にはXMLをツリー構造として扱うためのAPI群であり、XMLに近いがXMLではないHTMLの場合はWebブラウザ内でHTMLからXMLへ変換したのち利用できるようになっている。よって、DOM経由でHTMLのソースコードを取り出すと、HTMLのタグ閉じ忘れなどが修正されている状態となっている。このHTMLからXMLへの変換ルールがWebブラウザごとに異なることで、いわゆるHTMLのレイアウト崩れが発生する一因となっている。 DOMは、XMLを平面的に読み込むSAXとは異なり、XMLデータをツリー構造として扱う事ができる。ただし、通常の場合対象のXML文書を全て読み込んでからの扱いを前提とするため動作速度が遅かったり、メモリーの使用量が大きくなる欠点もある。
大雑把に言えば、最近のWebブラウザに搭載されている開発モード(FirefoxのFirebugやOperaのOpera Dragonfly、IEの開発者ツールなど)で表示されるHTMLソースコードのHTMLツリー表示のことである。
XMLの場合は(個人的に周囲では)DOMよりもXPathが使われることが多いが、HTMLの場合はJavaScriptから手軽に利用できるという関係でDOMが使われることが多い。
JavaScriptからDOMを利用する場合は、onloadイベントがDOM準備完了の合図であり、onloadイベント発生前にDOM APIを呼び出しても動かないよ。
W3C勧告
関連項目
参考文献
外部リンク
- http://www.w3.org/DOM/DOMTR - 公式サイト
- https://developer.mozilla.org/en/Gecko_DOM_Reference - FirefoxのDOM APIリファレンス