2014-05-11 32 views
0

我想在雅虎財務使用HTML敏捷包得到一個公司的部門,但我不斷收到對象引用未設置爲對象異常的實例。爲什麼我的代碼拋出這個異常?我已經多次檢查過xpath Id了。Html敏捷xpath id錯誤 - 雅虎財經

string Url = "http://www.finance.yahoo.com/q/pr?s=MSFT+Profile"; 
HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load(Url); 
string xpathid = "//*[@id=\"yfncsumtab\"]/tbody/tr[2]/td[1]/table[2]/tbody/tr/td/table/tbody/tr[2]/td[2]/a"; 
string sector = doc.DocumentNode.SelectNodes(xpathid)[0].InnerText; 
Console.WriteLine(sector); 

這是拋出異常的行:

string sector = doc.DocumentNode.SelectNodes(xpathid)[0].InnerText; 
+0

基本上,您的XPath不匹配任何元素,因此,當您試圖訪問不存在的(null元素)的InnerText時,拋出一個NullReferenceException異常。 –

+0

我用鉻瀏覽器,並按下F12來查找xpath id,所以我認爲xpath id是有效的。 – user1637158

+0

在訪問它之前測試SelectNodes的結果。 –

回答

-1

大概因爲是的SelectNodes返回null ...但你想反正訪問它。

您需要說明哪一行拋出異常。

將幾個操作干擾到一行代碼中會使調試比需要的更困難。

您更新後的帖子確認了我的建議。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 –

+0

感謝您分享您的意見。注意我指出了最可能的問題,就如何提出更好的問題提出了建議,並提出了更好的編程風格以提高調試的便利性。如果他不能用這些信息解決問題,那麼恐怕勺子喂他的答案對任何人都不會有幫助。 –

+0

感謝您的深思熟慮的回覆,我在審查過程中投了這個答案(沒有downvote),似乎這個問題應該被視爲「信息不足」。 –