如何使用HtmlAgilityPack在C#中提取链接?
问题描述
需要提取页面中包裹图片的<a>标签的href属性值,尝试使用以下代码未成功:
var link = document4.DocumentNode.SelectSingleNode("//header[@class='entry-header']/h2/a").Attributes["href"].Value;
解决方案
- 原XPath定位错误:目标
<a>标签不在header.entry-header下的h2节点内,而是在div.entry-summary节点下的<p>标签里。 - 替换为正确的XPath代码:
var link = document4.DocumentNode.SelectSingleNode("//div[@class='entry-summary']/p/a").Attributes["href"].Value; - 容错处理建议:避免节点为空导致的空引用异常,可增加判断逻辑:
var targetNode = document4.DocumentNode.SelectSingleNode("//div[@class='entry-summary']/p/a"); if (targetNode != null) { var link = targetNode.Attributes["href"].Value; // 执行后续业务逻辑 }
内容的提问来源于stack exchange,提问作者André Arruda
相关产品推荐
相关产品推荐

