使用LINQ和HtmlAgilityPack解析html表

c# html-agility-pack linq

我想在網頁http://cslh.cz/delegace.html?id_season=2013上解析日期,鏈接文本和鏈接來自table class ='nice'的 href

我創建了對象DelegationLink

public class DelegationLink
{
   public string date { get; set; }
   public string link { get; set; }
   public string anchor { get; set; }
}

並與LINQ一起使用它來創建DelegationLink列表

public class DelegationLink
{
   public string date { get; set; }
   public string link { get; set; }
   public string anchor { get; set; }
}

將日期列為ony並將其與每行中的鏈接列組合,但我只想簡單地獲取表中的每一行並從該行獲取日期,href和hreftext。我是LINQ的新手,我使用谷歌4小時沒有任何影響。謝謝您的幫助。

一般承認的答案

嗯,這很簡單,你只需要在SelectNodes函數調用中選擇tr並調整你的代碼。像這樣的東西。

var parsedValues = htmlDoc.DocumentNode.SelectNodes("//table[@class='nice']/tr").Skip(1)
.Select(r =>
      {
        var linkNode = r.SelectSingleNode(".//a");
        return new DelegationLink()
                  {
                    date = r.SelectSingleNode(".//td").InnerText,
                    link = linkNode.GetAttributeValue("href",""),
                    anchor = linkNode.InnerText,
                  };
      }
);
return parsedValues.ToList();



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