получить document.text из webbrowsercontrol - PullRequest
1 голос
/ 17 декабря 2011

Как получить document.text из элемента управления webbrowser в WPF?

У этого элемента управления больше нет этого свойства в WPF.Я посмотрел в статьях MSDN и ничего об этом нет.

Кроме того, поиск в Google не дал мне никаких результатов по этому элементу управления в WPF

1 Ответ

3 голосов
/ 17 декабря 2011

После того, как браузер завершил навигацию, вы можете вызвать метод, подобный этому ...

public static void GetPageContent(WebBrowser wb, string fileName)
{
    mshtml.HTMLDocumentClass dom = (mshtml.HTMLDocumentClass)wb.Document;
    Task t = new Task(() => File.WriteAllText(fileName, dom.body.innerHTML));
    t.Start();
}

Этот метод помещает всю страницу в стандартный файл ASCII, и вы можете анализировать контент в соответствии с вашими потребностями.

Чтобы использовать этот метод, вам необходимо включить ссылку на сборку Microsoft.mshtml, которая должна находиться на вкладке .NET в диалоговом окне «Добавить ссылку».Как показано, я порождаю отдельный поток, чтобы сохранить привлекательный интерфейс, но это необязательно.

Для случая, когда вы просто хотите, чтобы строка была возвращена клиенту, вы можете использовать этот метод ...

public static string GetPageContent(WebBrowser wb)
{
    return ((mshtml.HTMLDocumentClass) wb.Document).body.innerHTML;
}
...