通过HtmlAgilityPack获取属性的值

c# html-agility-pack

我想通过HtmlAgilityPack获取属性的值。 Html代码:

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

我想获得最后一个href属性。

我的c#代码:

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

但该代码返回第一个href值。

热门答案

以下XPath选择已定义href属性的link元素。然后从您选择最后一个的链接:

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

您还可以使用last() XPath运算符

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

更新:如果你想获得同时具有itemprophref属性的最后一个元素,那么使用XPath //link[@href and @itemprop][last()]//link[@href and @itemprop]如果你将采取第一种方法。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因