GetElementById返回錯誤的節點

c# html-agility-pack

在解析這個頁面時,我遇到了一個小問題(我不知道我是否犯了一些錯誤或者是否是一個錯誤)。

我試圖讓所有的a可用的標籤在此表:

在此處輸入圖像描述

所以為了達到這個目的,我寫了這段代碼:

`var d = doc.GetElementbyId("odds-data-table");
HtmlNodeCollection listItems = d.SelectNodes("//a");`

特別是d包含我想要的表結構:

在此處輸入圖像描述

但是listItems變量不包含表的鏈接,而是包含整個html頁面的鏈接,這很奇怪。我嘗試了不同的案例:

d.SelectNodes("a") : return null
d.SelectNodes("//a") : return all the link of the page 
d.SelectNodes("/a") : return null

哪裡不對?我還會問你在HtmlAgilityPack文檔中使用了哪種類型的插件或系統,真是太棒了,謝謝。

一般承認的答案

您必須從HtmlNodeCollection讀取每個HtmlNode Attributes屬性

HtmlDocument doc = new HtmlDocument();
var d = doc.GetElementbyId("odds-data-table");
HtmlNodeCollection listItems = d.SelectNodes(".//a");

//This list contains all your href values
List<string> hrefs = new List<string>();
foreach (var item in listItems)
{
      var href = item.Attributes["href"].Value;
      hrefs.Add(href);
}



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