XPath到href属性& WriteLine URL

时间:2014-01-09 06:41:44

标签: c# xpath html-agility-pack

我知道有很多XPath href问题,但是没有一个适合我的情况,或者我是它的初学者并且不知道我的代码有什么问题。如果这是一个愚蠢的问题,请耐心等待。

我有这个HTML结构:

<td valign="top">08-Jan-14 16:02</td>
<td valign="top"><span style="cursor:help;" title="Regulatory News Service">RNS</span></td>
<td valign="top"><a href="share-regulatory-news.asp?shareprice=BARC&amp;ArticleCode=d6rr2uxo&amp;ArticleHeadline=Blocklisting_Interim_Review" class="linkStoryHeadline rnsArticle" title="Blocklisting Interim Review">Blocklisting Interim Review</a></td>
<td valign="top">Company Announcement - General</td>

我的代码是:

HtmlNodeCollection cols5 = rows[i].SelectNodes(".//td[3]/a[@href]");

流编写器写入URL:

sw.WriteLine(cols5[j].InnerText);

结果似乎是Blocklisting Interim Review而不是网址。任何人都可以好好看看吗?我已经通过XPath指南并搜索了所有但仍无法得到我的案例的确切答案。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您无法使用XPath选择属性。选择a元素,然后获取它的href属性。以下xpath从第三个表格单元a元素中选择具有 href属性(是的,谓词只是指定该属性应该存在,它不会选择属性):

var a = doc.DocumentNode.SelectSingleNode(".//td[3]/a[@href]");
var href = a.Attributes["href"].Value;

返回

  

份额调控-news.asp shareprice = BARC&安培; ArticleCode = d6rr2uxo&安培; ArticleHeadline = Blocklisting_Interim_Review