解析HTML和用C#计数标签
问题描述:
假设我有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>
?
答
您可以使用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://*.com");
int liCount = doc.DocumentNode.Descendants("li").Count();
我喜欢你如何使用计算器导航。 –