Преобразование HtmlDocument.DomDocument в строку - PullRequest
10 голосов
/ 04 сентября 2010

Как преобразовать HtmlDocument.DomDocument в строку?

Ответы [ 2 ]

8 голосов
/ 04 сентября 2010

Этот пример немного запутан, но, если у вас есть форма с именем Form1, с элементом управления WebBrowser с именем webBrowser1, переменная content будет содержать разметку, которая формирует документ:

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

Необходимые "извлечения" из HtmlDocument.DomDocument находятся в обработчике webBrowser1_DocumentCompleted.

Примечание: mshtml получается путем добавления ссылки COM в «Библиотеку объектов Microsoft HTML» (она же: mshtml.dll)

3 голосов
/ 04 сентября 2010

Было бы проще использовать сам HtmlDocument, а не его свойство DomDocument:

string html = htmlDoc.Body.InnerHtml;

Или даже проще, если у вас есть доступ к WebBrowser, содержащему документ:

string html = webBrowser.DocumentText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...