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

时间:2019-02-17 18:02:41

标签: .net xpath html-agility-pack

我正在尝试在网页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的此类问题?

2 个答案:

答案 0 :(得分:2)

site-main中的连字符前后都有一个空格。当在已存在的双引号之间复制粘贴该字符串时,Visual Studio会自动添加这些空格。解决方案是在手动粘贴或修复后添加引号。

添加了Anderson Pimental的评论作为答案,并对此表示感谢。考虑删除此问题但保留为其他问题,Visual Studio也可能会遇到此问题。

答案 1 :(得分:0)

代码(site - main)中ID的连字符前后都有空格,而不是原始路径。