CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

DOMってなに?

こんにちは~

IE関連のページを探ると毎回表示されるDOMという単語

DOM?ジェットストリームアタックのことですかね?

 

DOMとは

 DOMとは(Document Object Model)の略称で構造化された文章の各要素をオブジェクトとしてプログラムから扱えるようにしたものだそうです。

 HTMLのソースをオブジェクト形式にしたってところですかね?

 DOMがあるおかげでプログラムからHTMLを操作できるらしいです。

 

 HTMLはウェブページを構成するためのプログラムのようなものです。そしてIEなどのブラウザがそれを分かりやすい形に変換しています。今見ているこのページもHTMLブラウザが変換して表示しているものですね。

 

サンプルプログラム

Sub GetByDOM()
    Dim ie As InternetExplorer

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.navigate "http://book.impress.co.jp/appended/3384/4-1.html"
    Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE
        DoEvents
    Loop

    Dim htdoc As HTMLDocument
    Set htdoc = ie.document

    MsgBox htdoc.getElementsByTagName("LI")(1).innerText
End Sub

 1行目:プロシージャの開始

2行目:変数ieをInternet\explorer型で宣言

3行目:なし

4行目:ieにInternetExplorer.Applicationをセット

5行目:IEを表示

6行目:このページを開く

7~9行目:ページが開き終わるまで待機

10行目:なし

11行目:変数htdocをieページのDOMをセット

12行目:箇条書きの2番目の項目をMsgBoxで表示

13行目:プロシージャの終了

 

こんな感じですね

f:id:takataka2743:20180910212459p:plain

ちなみに("LI")の後の括弧の中を0にすると1行目、2にすると3行目が表示され、当然ながら3にするとエラーが表示されます。

 

DOMは名前のとおりドキュメント形式で取得できるようですね。

IEのページがセットされたドキュメント=DOM かな

取得ができたのなら入力もできるはずです!