HTML Agility Pack 无法使用 XPath 找到节点

HTML Agility Pack fails to find the node using XPath

我想在网页https://blogs.msdn.microsoft.com/page/2/中寻找第200页的节点。我从 chrome 得到的 XPath 是 //*[@id="site-main"]/nav/div/a[4]。但是 HTML Agility Pack 在我尝试获取节点时返回 null。下面是示例代码。

string url = "https://blogs.msdn.microsoft.com/page/2/";
var doc = web.Load(url);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//*[@id=\"site - main\"]/nav/div/a[4]");

如何获取节点以及如何使用 XPath 解决此类问题?

site-main中连字符前后各有一个space。这些 space 是由 visual studio 在将该字符串复制粘贴到现有双引号之间时自动添加的。解决方法是在粘贴或手动修复后添加引号。

添加 Anderson Pimental 的评论作为答案并对此表示感谢。考虑删除此问题但保留此问题,因为 Visual Studio.

其他人也可能面临此问题

您的代码 (site - main) 中 id 的连字符前后有空格,而原始路径中没有。