Я пишу проект С#, и мне нужно получить исходный код HTML с данного сайта и показать его в элементе управления TreeView (каждый тег html должен быть узлом).
Я уже разместил компонент веб-браузера, я перейду на сайт, но у меня возникли проблемы с записью рекурсивной функции для получения HTML-кода и создания TreeView.
Мои поисковые запросы Google не предоставили никаких полезных решений. Может ли кто-нибудь помочь мне с советами, статьями или даже примерами? Заранее спасибо!
Вы ищете что-то вроде этого?
public Form1()
{
InitializeComponent();
string url = "http://www.google.com";
wb.Navigate(url);
}
TreeView tv = new TreeView();
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = (WebBrowser)sender;
if (wb.ReadyState == WebBrowserReadyState.Complete)
tv.Nodes.Add(LoadNode(wb.Document.Body));
}
private TreeNode LoadNode(HtmlElement htmlElm)
{
TreeNode tn = new TreeNode(htmlElm.TagName);
for (int i = 0; i < htmlElm.Children.Count; i++)
tn.Nodes.Add(LoadNode(htmlElm.Children[i]));
return tn;
}
Проверьте HtmlAgilityPack - он отлично подходит для разбора кода HTML в коде, и вы можете использовать Linq для навигации по всем элементам html.