c#
  • html
  • asp.net
  • html-agility-pack
  • html-parser
  • 2016-01-17 18 views -1 likes 
    -1

    我試圖讓使用HtmlAgilitypack。我的HTML代碼,嵌套div的價值是這樣的:div嵌套的innerText返回對象引用不設置到對象的實例在HtmlAgilitypack

    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

    對象引用未設置錯誤顯然是因爲SelectSingleNode返回null,並且您嘗試獲取InnerText屬性。您應該嘗試逐步選擇元素以查找問題。 –

    +0

    @MehrzadChehraz是的你是對的,但我使用xpath獲取元素值 –

    +0

    Okey,但你需要通過嘗試逐步選擇元素來查找SelectSingleNode返回null的位置。這可能是一個錯字或其他問題。 –

    回答

    0

    很多時候不能很好地形成一個頁面的HTML內容。使用瀏覽器進行檢查不會顯示從服務器收到的實際HTML。您可以在檢查員的Source選項卡中找到實際的HTML。

    您需要在將它傳遞給HtmlAgilitypack之前修復格式不正確的HTML。這裏是a site you can use(你可以通過發送HTTP Post到站點使用,並從響應中獲得「精細html」)

    相關問題