C# HtmlAgilityPack HtmlNodeCollection SelectNodes不起作用

本文关键字:不起作用 SelectNodes HtmlNodeCollection HtmlAgilityPack | 更新日期: 2023-09-27 17:56:28

这是我正在使用的代码行,当我查看监视窗口时,'c'为空。

HtmlNodeCollection c = doc.DocumentNode.SelectNodes("//*[@id='"content'"]/table/tbody/tr[2]/td/center[2]/b");

但是当我将"c"声明为这样时,监视窗口显示它是一个有效的 HtmlNodeCollection

HtmlNodeCollection c = new HtmlNodeCollection(doc.DocumentNode.ParentNode);

如果我然后将"c"设置为第一个代码片段,它将恢复为空。

我知道XPath是正确的,因为我是从我想要获得的元素的Chrome Inspect Element中获得的。

C# HtmlAgilityPack HtmlNodeCollection SelectNodes不起作用

SelectNodes在未找到任何内容时返回null。

认为你的XPATH是可以的,因为你使用了浏览器(Chrome,Firefox等)构建的XPATH,但不幸的是,这个XPATH与你从网络(或文件或原始流)获得的XPATH并不完全相同。

浏览器依赖于它们内部使用的内存中 DOM,这可能大不相同。这就是为什么你会看到像 TBODY 这样的元素只存在于 DOM 中,而不是在标记中(它们是可选的)。

因此,我建议您回到提供给 Html Agility Pack 的字符串/流,并再次检查该 XPATH。我敢打赌,首先没有TBODY。