2014-03-04 32 views
0

我正在編寫一個C#項目,我必須從給定網站獲取HTML源代碼並在TreeView控件中顯示它(每個html標籤都應該是一個節點)。在TreeView C#中的HTML源代碼#

我已經放置了一個Web瀏覽器組件,我導航到該網站,但我無法編寫遞歸函數來獲取HTML並創建TreeView。

我的谷歌搜索沒有提供任何有用的解決方案。任何人都可以幫助我提供任何提示,文章甚至例子嗎?提前致謝!

回答

0

你在尋找類似的東西嗎?

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

謝謝,它工作!有沒有什麼辦法可以讓head html和body不僅? – user3379951

+0

您可以使用「wb.Document.Body.Parent」而不是「wb.Document.Body」 – GorkemHalulu

0

查看HtmlAgilityPack - 它非常適合在代碼中解析Html,您可以使用Linq瀏覽所有html元素。

+0

感謝您的回答,但不得包含任何「外部」庫。 – user3379951