2013-08-19 26 views
-1

我想通過解析HTML文件與HTML敏捷性包一級的元素,例如結果會是這樣的:如何從HTML文件中的第一級元素與HTML敏捷性包&C#

<html> 
    <body> 

    <div class="header">....</div> 
    <div class="main">.....</div> 
    <div class="right">...</div> 
    <div class="left">....</div> 
    <div class="footer">...</div> 

    </body> 
</html> 

這是每個包含其他標記... 我想提取網站中存在的所有文本,但分開。例如右側分開,左側分開,頁腳等...

任何人都可以幫助我嗎?

感謝...

+0

但你有什麼嘗試..! – Anirudha

+0

你有一些特定的html要解析,或者你期望任何html頁面都有這個結構?你也可以通過提取文本來提供樣本嗎? –

+0

@ lazyberezovsky:是的,任何html page.it的maens:沒有標籤的文本 –

回答

0

使用HtmlAgilityPack從給定的URL加載網頁,然後通過選擇正確的對應標籤解析它。

HtmlWeb page = new HtmlWeb(); 
HtmlDocument doc = new HtmlDocument(); 
docc = page.Load("http://www.google.com"); 

如果你想選擇一個特定的div與類名「header」,通過使用您的文檔對象的DocumentNode物業這樣做。

string mainText = doc.DocumentNode.SelectSingleNode("//div[@class=\"main\"]").InnerText; 

機會是,雖然你有你的HTML幾個標籤是「主」類的成員,因此你必須將其全部選中,然後遍歷集合,或當您選擇單更精確節點。

要獲得所有標記的集合表示,即在類'main'中,則使用DocumentNode.SelectNodes屬性。


我建議你看看這個問題,在SO這裏的一些基礎知識和指南鏈接可用。

How to use HTML Agility pack

+0

是的,我知道這一點,但我希望執行任何網站雖然模式是不同的每個網站,這是我的問題!!!! :( –

+0

然後,我建議你想出你自己的算法或一般方法,神奇會爲你做到這一點,因爲目前還沒有做到這一點! 如果你知道所有網站上的所有類名都是相同的,只需簡單地遍歷它們,否則你的問題不是可以回答的問題。 –