den*_*ied 11 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">
Run Code Online (Sandbox Code Playgroud)
我想获得最后一个href属性.
我的c#代码:
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument htmldoc = web.Load(Url);
htmldoc.OptionFixNestedTags = true;
var navigator = (HtmlNodeNavigator)htmldoc.CreateNavigator();
string xpath = "//link/@href";
string val = navigator.SelectSingleNode(xpath).Value;
Run Code Online (Sandbox Code Playgroud)
但该代码返回第一个href值.
Ser*_*kiy 17
以下XPath选择link已href定义属性的元素.然后从您选择最后一个的链接:
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"
Run Code Online (Sandbox Code Playgroud)
您也可以使用last()XPath运算符
var link = doc.DocumentNode.SelectSingleNode("/link[@href][last()]");
var href = link.Attributes["href"].Value;
Run Code Online (Sandbox Code Playgroud)
更新:如果你想获得同时具有最后的元素itemprop和href属性,然后使用XPath //link[@href and @itemprop][last()]或者//link[@href and @itemprop]如果你有第一种方法去.
小智 5
将网页加载为 Htmldocument 并直接选择最后一个链接标签。
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
var output = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
var data = output.Attributes["href"].Value;
Run Code Online (Sandbox Code Playgroud)
或者将网页加载为 Htmldocument 并获取所有选定链接标记的集合,然后使用循环进行移动,然后访问最后一个选择标记属性。
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
int count = 0;
string data = "";
var output = doc.DocumentNode.SelectNodes("//link[@href]");
foreach (var item in output)
{
count++;
if (count == output.Count)
{
data=item.Attributes["href"].Value;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32065 次 |
| 最近记录: |