Как перебрать все HTML-теги на странице с помощью Agility Pack в C #? - PullRequest
0 голосов
/ 16 марта 2012

Я хотел бы проанализировать мою HTML-страницу как можно более универсальным способом.Я не хочу создавать синтаксический анализатор каждый раз, когда страница была изменена, поэтому я хотел бы разумно проанализировать его по значению тегов.

Я знаю, что HTML Agility Pack предоставляет инструменты для чтения и поискапо типу тега (td, strong, li и т. д.), но я хотел бы перебрать все теги и найти информацию, которую я знаю, по тегу content , а не по типу тега, потому чтотип может измениться.

Пример: Страница:

<table>
<tr valign="top">
<td valign="top">Sex:<br />
</td><td valign="top">Male<br />
</td></tr>
<tr valign="top">
<td valign="top">Current City:<br />
</td><td valign="top">New York<br /></td>
  • Я знаю, что значением будет «Sex:», и следующий тег будет содержать пол.
  • Я знаю, что значением будет "Текущий город:", а затем следующим тегом будет город.

Я знаю, что могу выполнять итерации по тегам, но если тегиизменить мой синтаксический анализатор больше не будет работать.

Можно ли выполнять итерацию по значениям, а не по типу тегов?

1 Ответ

0 голосов
/ 16 марта 2012

Вы можете ввести все узлы внутри <table> в HtmlNodeCollection. Затем выполните итерацию по этому списку узлов:

foreach (HtmlNode node in ListofNodes)

В рамках этого вы можете проверить InnerHtml каждого узла, чтобы проверить ваши конкретные строки? Я предполагаю, что таблица имеет одни и те же поля каждый раз. Либо так, либо добавьте класс id / css и найдите этот конкретный класс id / css.

...