2013-07-24 71 views
1

假設我在http://google.com,我想驗證頁面上是否存在一個存在id="hplogo"的元素(它是Google徽標)。使用HtmlAgilityPack,驗證網頁上的元素是否存在

我想用HtmlAgilityPack,所以我寫的是這樣的:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
    doc.LoadHtml("http://google.com"); 
    var foo = (from bar in doc.DocumentNode.DescendantNodes() 
       where bar.GetAttributeValue("id", null) == "hplogo" 
       select bar).FirstOrDefault(); 
    if (foo == null) 
    { 
     HasSucceeded = 1; 
     MessageBox.Show("not there"); 
    } 
    else 
    { 
     MessageBox.Show("it's there"); 
    } 
    return HasSucceeded; 
} 

它應該會返回「它的存在」消息,因爲它的存在。但事實並非如此。我究竟做錯了什麼?

+0

對不起,我只是一直在與Visual Studio編碼像2周所以我還是新來它是如何工作。但我一直在使用它們,我只是不知道如何解釋它給我的信息。 編輯:好的評論刪除了經典。 –

回答

3

方法LoadHtml(html)加載字符串,其中包含用於解析的html內容。這不是加載資源的網址。所以你正在加載字符串"http://google.com",並試圖找到它的標誌。這當然會給你不存在的結果。

您可以使用WebClient下載資源內容:

WebClient client = new WebClient(); 
string html = client.DownloadString("http://google.com"); 
HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(html); 
+1

你是。男人。 –

相關問題