我想在C#中阅读this table的信息(它总是相同的风格)。这是一个替换老师的计划,我想把这个计划整合到我的学校时间表中。
发布于 2018-12-06 22:23:29
您可以使用像HtmlAgilityPack这样的第三方库来将数据解析为可以使用Linq进行查询的数据
从这篇StackOverflow文章开始,下面的内容就变得简单了
tmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlCode);
var headers = doc.DocumentNode.SelectNodes("//tr/th");
DataTable table = new DataTable();
foreach (HtmlNode header in headers)
table.Columns.Add(header.InnerText); // create columns from th
// select rows with td elements
foreach (var row in doc.DocumentNode.SelectNodes("//tr[td]"))
table.Rows.Add(row.SelectNodes("td").Select(td => td.InnerText).ToArray());您可以为特定表创建自定义类,并检查表td/或header的属性,以了解什么映射到哪里,以及
e.g
var myTableClass = new TableClass();
myTbaleClass.Name = row[0];
.....这会让你的事情变得更简单。
发布于 2018-12-07 22:09:22
好吧。我找到了最好的解决方案:
var web = new HtmlWeb();
var doc = web.Load(url);
foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
{
foreach (HtmlNode row in table.SelectNodes("tr"))
{
temprow = new List<string>();
foreach (HtmlNode cell in row.SelectNodes("td"))
{
temprow.Add(cell.InnerText);
}
rows.Add(temprow);
}
}https://stackoverflow.com/questions/53653365
复制相似问题