天天看點

從C#中通路DHTML DOM對象

摘要:

本文說明了如何利用Microsoft Web Browser(Web浏覽器)控件和Microsoft Document Object Model (DOM)(文檔對象模型),用程式設計的方式來通路Web中的每一個元素。

要通路Web頁面的元素,首先必須引用Web Browser控件,以便應用其屬性、對象、方法和事件。通過調用Navigate方法,就可以用Web Browser來打開頁面。但要用程式進行通路,必須等到文檔全部下載下傳完了之後才能夠進行,即文檔的Complete事件發生;然後把Web Browser對象的Document屬性轉換成IHTMLDocument2接口對象,這樣就可以通路該對象的集合了,比如:Link集合,Image集合等,這些集合将傳回IHTMLElementCollection對象。本文以Link集合做例子來進行闡述,傳回你指定URL頁面的全部的連結。

下面就是實作這一功能的簡單過程:

1,打開Microsoft Visual Studio .NET,建立一個Visual C# Windows Application(Windows應用程式),預設名稱為Form1。

2,在Solution Explorer(解決方案浏覽器)中,用右鍵點選References(引用)檔案夾,然後選擇 Add Reference(添加引用)的選擇項,這時會打開Add Reference(添加引用)對話框。

3,點選.NET标簽頁,輕按兩下Microsoft.mshtml元件,然後點選OK(确定)按鈕。

4,打開ToolBox(工具箱),在任何一個工具項上點選右鍵,選擇Customize Toolbox(自定義工具條),此時,自定義工具條對話框就打開了。

5,點選COM Components(COM 元件)标簽頁,使Microsoft Web Browser前的複選框選中。點OK(确定)按鈕。此時,名為Explorer的Web Browser控件就添加到了工具箱内。

6,選擇Explorer控件,把它添加到Form1窗體内,名稱為預設的axWebBrowser1。

7,在Browser控件的上面添加TextBox,在browser控件的下面添加ListBox,名稱分别為預設的Textbox1和Listbox1,Textbox1的Text屬性設定為:http://lucky_elove.www1.dotnetplayground.com/;在TextBox後面添加Button,Text改為“浏覽頁面”,名稱為Button1。此時,頁面将入下圖所示:

從C#中通路DHTML DOM對象

8,輕按兩下Button1,在Button1_Click的事件裡輸入如下的代碼:

private void Button1_Click(object sender, System.EventArgs e) { object Zero = 0; object EmptyString = ""; axWebBrowser1.Navigate(textBox1.Text,ref Zero, ref EmptyString, ref EmptyString, ref EmptyString); } 
      

9,切換窗體到設計模式,選擇Browser控件,點選屬性視窗上的“Event(事件)”圖示,此時Web Browser事件對話框打開,輕按兩下Document Complete事件,在axWebBrowser1_DocumentComplete的事件處理過程裡輸入如下的代碼:

private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e) { IHTMLDocument2 HTMLDocument =(IHTMLDocument2) axWebBrowser1.Document; IHTMLElementCollection links = HTMLDocument.links; listBox1.Items.Clear(); foreach (HTMLAnchorElementClass el in links) { listBox1.Items.Add(el.outerHTML); } } 
      

10,在Form1.cs檔案的頂部輸入:

using mshtml;
      

11,按F5,運作表單,點選“浏覽頁面”按鈕,将會看到如下的結果,是不是很爽:)

從C#中通路DHTML DOM對象

繼續閱讀