C#Html Agility Pack(SelectSingleNode)

c# html html-agility-pack parsing

我正在嘗試解析這個字段,但無法讓它工作。目前的嘗試:

var name = doc.DocumentNode.SelectSingleNode("//*[@id='my_name']").InnerHtml;


<h1 class="bla" id="my_name">namehere</h1>

錯誤:對象引用未設置為對象的實例。

感謝任何幫助。

@John - 我可以確保HTML已正確加載。我正在嘗試閱讀我的Facebook名稱以用於學習目的。這是Firebug插件的截圖。我使用的版本是1.4.0。

http://i54.tinypic.com/kn3wo.jpg

我想問題是profile_name是一個子節點或什麼的,這就是為什麼我無法讀取它?

熱門答案

您的代碼不起作用的原因是因為頁面上的JavaScript實際上寫出了<h1 id='profile_name'>標記,所以如果您從用戶代理(或通過AJAX)請求頁面不執行JavaScript然後你將找不到該元素。

我可以使用以下選擇器獲取自己的名字:

string name = 
    doc.DocumentNode.SelectSingleNode("//a[@id='navAccountName']").InnerText;



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因