Разбор HTML и подсчет тегов с помощью C # - PullRequest
1 голос
/ 25 сентября 2011

Предположим, у меня есть блок HTML в строке:

<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> * * 1006

1 Ответ

8 голосов
/ 25 сентября 2011

Вы можете использовать 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...