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 的连字符前后有空格,而原始路径中没有。
我想在网页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 的连字符前后有空格,而原始路径中没有。