HTML Agility Pack解析

时间:2013-01-25 20:58:06

标签: html asp.net-mvc 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中的链接?

谢谢!

2 个答案:

答案 0 :(得分:3)

使用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"

答案 1 :(得分:2)

以下XPath对应于您的说明:

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

它将返回直接位于任何href元素下的a元素的div个属性,class属性等于person

如果您对jQuery样式选择器更熟悉,请查看使用CsQuery而不是HTML Agility Pack。