2011-09-25 54 views
1

假設我有HTML字符串中的一個塊:解析HTML和用C#計數標籤

<div class="nav mainnavs"> 
    <ul> 
     <li><a id="nav-questions" href="/questions">Questions</a></li> 
     <li><a id="nav-tags" href="/tags">Tags</a></li> 
     <li><a id="nav-users" href="/users">Users</a></li> 
     <li><a id="nav-badges" href="/badges">Badges</a></li> 
     <li><a id="nav-unanswered" href="/unanswered">Unanswered</a></li> 
    </ul> 
</div> 

我如何解析HTML和計數特定類型的標籤的實例數,如<div><li>

+2

我喜歡你如何使用計算器導航。 –

回答

8

您可以使用HtmlAgilityPack這個 - 最新版本支持LINQ的,所以這是直接的:

對於本地HTML文件:

HtmlDocument doc = new HtmlDocument(); 
doc.Load(@"test.html"); 
int liCount = doc.DocumentNode.Descendants("li").Count(); //returns 5 

從網站:

HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load("http://stackoverflow.com"); 
int liCount = doc.DocumentNode.Descendants("li").Count();