【发布时间】:2021-03-22 01:44:50
【问题描述】:
在 HTMLAgilityPack 中发现了一个令人讨厌的错误,其中某些属性值未完全返回 - 它们被截断。具体来说,当尝试从锚标记中获取 href 值时,仅返回根域,后面的任何内容(查询字符串)都将被完全忽略。有人知道一个好的解决方法吗?
例子:
node.SelectSingleNode("//link").Attributes["href"].Value
返回https://www.example.com 而不是返回 https://www.example.com/mypage.php?_src=ffk_title&ffkid=66534&site=data:http%3A%2F%2Fwww.othersite.com%2Frss%2F
链接是这样的
<a class="tlink" href="https://www.example.com/mypage.php?_src=ffk_title&ffkid=66534&site=data:http%3A%2F%2Fwww.othersite.com%2Frss%2F" target="_blank">Click to get feed</a>
无论如何 - 现在,我将只获取链接标记并使用旧方法进行解析 - 我认为如果 href 标记中存在非典型字符,HTMLAgilityPack 会感到困惑。我希望这只是我做错了什么,但这种怪癖真的很伤人。
【问题讨论】:
-
你能提供你的实际代码吗?
//link不是//a,如果我将其更改为doc.DocumentNode.SelectSingleNode("//a").Attributes["href"].Value,它会按照您的预期为我提供完整的 URL。那是使用 v1.11.31。
标签: c# attributes html-agility-pack