c#htmlagilitypack解析div与class的第一个链接?

时间:2013-05-21 05:45:51

标签: c# html-agility-pack

我正在尝试解析/search?id=3

下面的html代码中的第一个链接
<div class="brs_col">
  <p>
    <a href="/search?id=3">
      <b>
        vastu shastra
      </b>
    </a>
  </p>
  <p>
    <a href="/search?id=1">
      <b>
        bygga
      </b>
      bastu
    </a>
  </p>
</div>

我尝试使用以下XPATH选择它,但似乎无法使其中任何一个工作:

//div[@class='brs_col']//p//a[@href]
//div[@class='brs_col']//p[0]//a[@href]
//div[@class='brs_col']//p//a[0][@href]

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

var doc = new HtmlDocument();
doc.LoadHtml(@"<div class=""brs_col"">
                  <p><a href=""/search?id=3""><b>vastu shastra</b></a></p>
                  <p><a href=""/search?id=1""><b>bygga</b>bastu</a></p>
                </div>");
var hrefValue = doc.DocumentNode
                   .SelectSingleNode("//div[@class='brs_col']/p/a")
                   .Attributes["href"]
                   .Value;

答案 1 :(得分:0)

你可以试试这个

doc.DocumentNode.SelectNodes("//a[@href]").FirstOrDefault();

答案 2 :(得分:0)

如果您确定这是整个HTML文档中的第一个网址:

doc.DocumentNode.SelectSingleNode("//a").Attributes["href"].Value;

如果您确定这是brs_col类中的第一个ulr

,请执行此操作
doc.DocumentNode.SelectSingleNode("//div[@class='brs_col']//a").Attributes["href"].Value;