嵌套div innertext返回未在HtmlAgilitypack中设置对象实例的Object引用

时间:2016-01-17 06:11:16

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

我试图使用HtmlAgilitypack获取嵌套div的值。我的html代码是这样的:

enter image description here

这是我的代码:

        var val = resultat1.DocumentNode.SelectSingleNode("//div[@class='journal-content-article']/div[@class='news_page max']/div[@class='news_page_wrapper']/div[@class='news_page_content']/div[@class='news_content']/div[@class='news_content_container']").InnerText;

我需要news_content_container的innertext。但这行代码返回Object reference not set to an instance of an object

这会返回错误:

        var val = resultat1.DocumentNode.SelectSingleNode("//div[@class='journal-content-article']/div[@class='news_page max']").InnerText;

返回值但不是预期值:

        var val = resultat1.DocumentNode.SelectSingleNode("//div[@class='journal-content-article']").InnerText;

1 个答案:

答案 0 :(得分:0)

很多时候,页面的HTML内容格式不正确。使用浏览器检查不会显示从服务器收到的实际HTML。您可以在检查员的Source标签中找到实际的HTML。

在将其传递给HtmlAgilitypack之前,您需要修复格式不正确的HTML。这是a site you can use(您可以通过向网站发送HTTP Post并获取"精美的html"来自响应)来使用