DOM(Document Object Model)についてわかりやすく教えてください。


言語中立とはどういうことなのか?
DOMのメリット?
など

知識が浅いので簡単な言葉で教えていただけると助かります。

回答の条件
  • 1人2回まで
  • 登録:2008/04/09 21:18:31
  • 終了:2008/04/16 21:20:02

回答(4件)

id:wizemperor No.1

wizemperor回答回数379ベストアンサー獲得回数522008/04/09 21:34:24

ポイント23pt

言語中立とは、文字通りプログラミング言語に依存しないことです。

つまり、DOMの概念を理解しておけば、どんなプログラミング言語でも(その言語が対応してれば)似たような感じで使うことができます。

実際には言語ごとに「使い方」に違いがありますが、考え方は同じです。


メリットは、HTMLやXMLなどの特定の部分を簡単に抽出、変更、削除できることです。

特定の部分を好きなところから簡単に操作できるので、プログラムも簡単になります。

id:ken33jp No.2

ken33jp回答回数928ベストアンサー獲得回数132008/04/09 23:39:51

ポイント23pt

http://ja.wikipedia.org/wiki/Document_Object_Model

>言語中立とはどういうことなのか?

どのプログラム言語からも使えるような仕様にしてるということです。

最近の言語なら、ライブラリかなにかで特に意識しなくてもDOMが

扱えるようになってます。

XMLを読み込む別のAPIであるSAXと異なり、XMLデータをツリー構造として扱う事ができる。
ただし、通常の場合対象のXML文書を全て読み込んでからの扱いを前提とするため動作速度
が遅かったり、メモリーの使用量が大きくなったりする欠点もある。

DOMは本来そういう性質のもですが、最近のマシンパワーとメモリーではそんなことを

意識しなくてもよくなったということです。メリットは、データの標準フォーマットとして

使えるという点です。

id:the_yakisoba

>データの標準フォーマットとして使えるという点です。

この部分をもう少し噛み砕いて教えていただけますか。

具体例があると助かります。

2008/04/10 00:01:00
id:seikoudoku2000 No.3

seikoudoku2000回答回数33ベストアンサー獲得回数02008/04/09 23:56:09

ポイント22pt

自分の理解としては、HTMLやXMLのDocument内の各要素を、様々な言語でObjectとして扱うことができるように定めたルールというイメージです。

<html>
<body>
 <table>
  <tr>
   <td>
     <span id="spanObj">aaa</span>
   </td>
   <td>
     <div id="divObj">bbb</div>
   </td>
  </tr>
 </table>
</body>
</html>

例えばこんなHTMLがあった時に、プログラムからdivの中の値を知りたい時にjavascriptでは

var divValue = document.getElementById("divObj").innerText;

のように書ける。

書き換えたい時は

document.getElementById("divObj").innerText = "xxx";

(他にもノードを辿っていったり、タグ名から要素を取得したりと色々と方法があります。)

このように各要素にアクセスする方法がDOMによってルール付けされていないと、プログラムからHTMLを動的に変更したり、XMLで記述されたデータを読み込んだりといったことは、相当な困難を極めるでしょう。

id:ttakao No.4

RON回答回数276ベストアンサー獲得回数312008/04/10 10:26:03

ポイント22pt

言語中立については、多くの回答がありますので、DOMのメリットとよくない点について書きます。

DOMの前提は、「ドキュメント(データ)は構造化されている」にあります。本のように大見出し、中見出し、小見出し、本文にようになっていることを想定しています。いったん、DOMオブジェクトに読み込むと、大見出しの下に中見出しを追加したり、削除したりがイメージどおりにできます。データにタグをつけて、どのデータも同じような考え方で処理できる点は素晴らしいのです。従来のCSVファイルのようなレコードの順序に依存するよりは、はるかに高度なデータ表現ができます。従来、プログラムの論理でひとりひとりが開発していたことを標準化し、ラクになったと考えることができます。

しかし、DOMを利用した多くのプログラムでgetElementByTagNameが頻繁に使われているとおり、見出しを順々に降りていってテキストや属性をいじることは、とても煩雑なプログラミングとなります。とくに、特定のフィールドだけを書き換えたいなどという時に、構造体として扱うしか方法がないことは、メンドウにすぎます。ファイルとして読んだほうがラクじゃないか、でも言語中立でね、という要求に応えてできたのがSAXです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません