2011-09-25 91 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();