Пакет анализа гибкости HTML

asp.net-mvc html html-agility-pack

Вопрос

Я очень новичок в HTML Agility Pack. Я пытаюсь найти некоторую документацию, но имею некоторые проблемы.

У меня есть следующий код:

<div class="person">
<a href="blah1.html">Person 1</a>
</div>
<div class="person">
<a href="blah2.html">Person 2</a>
</div>
<div class="person">
<a href="blah3.html">Person 3</a>
</div>
<div class="person">
<a href="blah4.html">Person 4</a>
</div>

Используя синтаксический анализатор, как я могу использовать только ссылки в div, у которых есть класс?

Спасибо!

Принятый ответ

С Html Agility Pack (доступно на NuGet):

HtmlDocument html = new HtmlDocument();
html.Load(path_to_html); // or html.LoadHtml(html_string)           
var links = html.DocumentNode.SelectNodes("//div[@class='person']/a")
                .Select(n => n.GetAttributeValue("href", null));

Возвращает:

"blah1.html"
"blah2.html"
"blah3.html"
"blah4.html"

Популярные ответы

Следующий XPath соответствует вашему описанию:

//div[@class='person']/a/@href

Это вернет href атрибутов первого a элементы , которые находятся непосредственно под любым div элемента с class атрибутом , который равен person .

Если вам удобнее использовать селектор стиля jQuery, взгляните на использование CsQuery вместо HTML Agility Pack.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow