2010-09-03 34 views

Trả lời

7

Ví dụ này là một chút phức tạp, nhưng, giả sử bạn có một mẫu gọi là Form1, với một điều khiển WebBrowser gọi webBrowser1, biến content sẽ chứa đánh dấu hình thành tài liệu:

private void Form1_Load(object sender, EventArgs e) 
{ 
    webBrowser1.Url = new Uri(@"http://www.robertwray.co.uk/");   
} 

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    var document = webBrowser1.Document; 
    var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)document.DomDocument; 

    var content = documentAsIHtmlDocument3.documentElement.innerHTML; 
} 

Các thiết yếu " ruột "trích xuất nó từ HtmlDocument.DomDocument nằm trong trình xử lý sự kiện webBrowser1_DocumentCompleted.

Lưu ý: mshtml thu được bằng cách thêm một tài liệu tham khảo COM để 'Microsoft HTML Object Library` (aka: mshtml.dll)

3

Nó sẽ được dễ dàng hơn để sử dụng HtmlDocument chính nó, chứ không phải là tài sản DomDocument của nó:

string html = htmlDoc.Body.InnerHtml; 

Hoặc thậm chí đơn giản hơn, nếu bạn có quyền truy cập vào các WebBrowser chứa tài liệu:

string html = webBrowser.DocumentText; 
+1

thực sự tôi cần DomDocument vì DocumentText không thay đổi sau khi DOM được thao tác.nhiều cách cảm ơn cho câu trả lời –

Các vấn đề liên quan