c# - 如何在 AngleSharp 项目对象中获取链接的标题?
问题描述
这是一个链接:
<a title = "mylink" href="mysite">content</a>
在 AngleSharp 对象中,我可以content
使用以下代码轻松获得:
string innerContent = item.TextContent;
但我需要得到链接的标题和href。我怎么做?
解决方案
请注意,AngleSharp 使用 W3C 定义的标准 DOM - 因此您只需搜索例如“如何从 DOM 中的锚元素获取 href”来检索答案。为了完整起见,示例搜索查询导致(在 Google 上首次点击)Get local href value from anchor (a) tag,它回答了您的问题。
刚刚翻译成C#这意味着
var anchor = item as IHtmlAnchorElement; // Assumption: You have obtained it "only" as an IHtmlElement
string title = item.Title;
string href = item.Href;
.GetAttribute("href")
备注:和之间有区别.Href
。前者始终可用(即使在非 上IHtmlAnchorElement
)并为您提供真正的价值。后者是在某些元素(例如IHtmlAnchorElement
)上可用的特殊计算版本,并且会为您提供规范化版本,已经考虑了当前文档的基本 URL。
TL;DR:.Href
会给你一个绝对 URL,而.GetAttribute("href")
可能会给你一个相对 URL。
!
推荐阅读
- ruby-on-rails - Ruby on Rails:验证没有模型的联系表单
- ios - 无法识别我的 ScrollView 上的 UISwipeGesture
- swift - UISwitch 保存要在函数中使用的值
- c++ - NoFieldsClass::operator new(std::size_t):标准是否允许它每次调用时返回相同的地址?
- python - 当我尝试使用 Paffy 获取 YouTube 播放列表的视频链接时出现错误
- firebase - 在 Firestore 安全规则中,我们应该避免错误还是与拒绝相同
- arduino - 使用大于和小于运算符理解代码
- r - 如何修复标签注释更改直方图
- python - 在 ForceElement 的子类上调用 super().__init__() 导致未定义构造函数
- node.js - 即使我的 PATH 指向 nodejs,节点也无法识别。我该如何解决?