2010-09-03 10 views

Répondre

7

Cet exemple est un peu alambiquée, mais, supposant que vous avez une forme appelée Form1, avec un contrôle WebBrowser appelé webBrowser1, la content variable contiendra le balisage qui forme le document:

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

L'essentiel " boyaux "de l'extraire du HtmlDocument.DomDocument est dans le gestionnaire d'événements webBrowser1_DocumentCompleted.

Note: mshtml est obtenue en ajoutant une référence COM à Microsoft HTML Object Library` (aka: mshtml.dll)

3

Il serait plus facile d'utiliser lui-même HtmlDocument, plutôt que sa DomDocument propriété:

string html = htmlDoc.Body.InnerHtml; 

Ou encore plus simple, si vous avez accès à WebBrowser contenant le document:

string html = webBrowser.DocumentText; 
+1

en fait j'avais besoin de DomDocument parce que DocumentText ne change pas après que le DOM soit manipulé. De toute façon merci pour la réponse –