用c 解析html表格,使用HtmlAgilityPack解析带有标题,表格,行,单元格的HTML

我试图使用HtmlAgilityPack解析通过网页的HTML解析出表/行的单元格。使用HtmlAgilityPack解析带有标题,表格,行,单元格的HTML

代码示例几乎可以工作,除了我在Table集合上遇到异常。我认为这可能与Header没有格式化为集合有关(我无法修改HTML的源代码)。

请帮助代码,或请建议替代方案或变通方法。

结构是: 头 - >表 - >行 - >细胞

有集管的集合(包含日期),包含表,其包含的行的集合的集合,并行包含一组单元格。

string html = @"

February 8, 2014

SiteColumnAColumnBColumnC
SiteA363
SiteB462
SiteC494

February 7, 2014

Site ColumnAColumnBColumnC
SiteA241
SiteB112
SiteC261

";

HtmlDocument doc = new HtmlDocument();

doc.LoadHtml(html);

foreach (HtmlNode header in doc.DocumentNode.SelectNodes("//h3"))

{

string headerDate = header.InnerText;

foreach (HtmlNode table in header.SelectNodes("table")) //System.NullReferenceException

{

foreach (HtmlNode row in table.SelectNodes("tr"))

{

Console.Write(headerDate);

foreach (HtmlNode cell in row.SelectNodes("td"))

{

Console.Write("\t" + cell.InnerText);

}

Console.WriteLine();

}

}

}

预期结果:

February 8, 2014 Site ColumnA ColumnB ColumnC

February 8, 2014 SiteA 3 6 3

February 8, 2014 SiteB 4 6 2

February 8, 2014 SiteC 4 9 4

February 7, 2014 Site ColumnA ColumnB ColumnC

February 7, 2014 SiteA 2 4 1

February 7, 2014 SiteB 1 1 2

February 7, 2014 SiteC 2 6 1

谢谢。杰克。

2014-02-14

Jake

+1

*“代码示例几乎可用”*,请提供您的代码示例。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值