XPath解析给我一个错误

时间:2012-07-21 20:34:29

标签: c# .net html-agility-pack

我正在尝试从this网站获取第一张图片,但我一直收到错误,并且无法弄明白为什么......

以下是代码:

string pictureurl = webdoc.DocumentNode.SelectSingleNode("//div[2]/table[1]/tr/td/a").Attributes["href"].Value;

,错误为Object reference not set to an instance of an object.

任何人都可以告诉我为什么?如果我删除上面的行,它工作正常..

3 个答案:

答案 0 :(得分:1)

使用//div[2]/table[1]/tbody/tr/td/a。根据配置设置,HtmlAgilityPack会插入一个tbody元素。

答案 1 :(得分:1)

获取img

的xpath不正确

请用这种方式

string pictureurl = 
webdoc.DocumentNode
.SelectSingleNode("//div[2]/table[1]/tr/td/a/img")
.Attributes["src"].Value;

答案 2 :(得分:1)

通过调试器仔细检查以下实际返回的内容......

webdoc.DocumentNode.SelectSingleNode("//div[2]/table[1]/tr/td/a");

我的猜测不是,而是使用以下(注意额外的tbody)..

webdoc.DocumentNode.SelectSingleNode("//div[2]/table[1]/tbody/tr/td/a");