2010-09-03 13 views

Respuesta

7

Este ejemplo es un poco complicado, pero, suponiendo que tiene una forma llamada Form1, con un control WebBrowser denominado webBrowser1, la variable content contendrá el marcado que forma el documento:

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; 
} 

El esencial " agallas "de extraerlo desde el HtmlDocument.DomDocument está en el controlador de eventos webBrowser1_DocumentCompleted.

Nota: mshtml se obtiene mediante la adición de una referencia COM a 'Microsoft HTML Objeto Library` (aka: mshtml.dll)

3

Sería más fácil utilizar el HtmlDocument en sí, en lugar de su propiedad DomDocument:

string html = htmlDoc.Body.InnerHtml; 

O aún más simple, si tiene acceso a la WebBrowser que contiene el documento:

string html = webBrowser.DocumentText; 
+1

en realidad necesitaba DomDocument porque DocumentText no cambia después de que el DOM está manipulado. De cualquier forma gracias por la respuesta –