HTML的TABLE转DATATABLE,请帮忙看看

liduoduo 2012-05-03 06:03:19
<TD>201205010</TD>
<TD>20838193</TD>
<TD>好好商城</TD>
<TD>12-05-01</TD>
<TD>12-05-02</TD>
<TD>深圳分发部</TD>
<TD>盐田站</TD>
<TD>配送成功</TD>
<TD>12-05-03</TD>
<TD> </TD>
<TD> </TD>
<TD>0.00</TD>
<TD>广东深圳市盐田区中青路9号</TD>
<TD>1592008</TD>
<TD>彭小姐</TD>
<TD>0.94</TD>
<TD> 1</TD>
<TD>花都仓0</TD>
<TD>曾辉</TD>
上面是HTML代码其中一行代码,请问我如何把<TD>里面的数据转换为DATATABLE或者分列显示到DATAGIRDVIEW?
只需要实现上述其中一种功能即可,谢谢

...全文
318 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔡袅 2012-05-04
  • 打赏
  • 举报
回复
标准的table格式完全可以先转化为XML在读取
test2050 2012-05-04
  • 打赏
  • 举报
回复
1楼写了你需要的,顶顶
mizuho_2006 2012-05-03
  • 打赏
  • 举报
回复
如果是XML,倒是很简单。

ReadXml()函数直接调用就可以了。
歌神的卖 2012-05-03
  • 打赏
  • 举报
回复
思路是这样,先用正则表达式选出所有值, 取出值赋给新建DATATABLE
代码如下:
 string t = "<TD>201205010</TD><TD>20838193</TD><TD>好好商城</TD><TD>12-05-01</TD><TD>12-05-02</TD><TD>深圳分发部</TD><TD>盐田站</TD><TD>配送成功</TD><TD>12-05-03</TD><TD> </TD>"
+ "<TD> </TD><TD>0.00</TD><TD>广东深圳市盐田区中青路9号</TD><TD>1592008</TD><TD>彭小姐</TD><TD>0.94</TD><TD> 1</TD><TD>花都仓0</TD><TD>曾辉</TD>";
string pattern=@"<TD>.*?</TD>";//首先是得出每个TD里的值
Regex regex = new Regex(pattern,RegexOptions.IgnoreCase);

MatchCollection mc = regex.Matches(t);//mc里放着所有<td> </td>内容
pattern = @"<[^>]*>";//这个正则表达式是取掉<td>,只留下<td>的内容
DataTable dt = new DataTable();//新建DataTable

List<string> list=new List<string>();//将所有值存放到这个List中
foreach (Match m in mc)
{
list.Add(Regex.Replace(m.ToString(), pattern, ""));
}

for (int i = 0; i < mc.Count; i++)
{
//为DataTable创建列名,这里是1到19,在dataGridview引用的列名就是1-19,也可以自己取值
//如table有列名,应该将Columns依次赋值列名
dt.Columns.Add(new DataColumn(i.ToString(), typeof(string)));
}

//这里是一行数据就添加一行,一共多少行数据,可以根据<tr>的数量判断
dt.Rows.Add(dt.NewRow() );

//将值添加到dt.rows中,这样dataGridview就可以使用这个datable作为数据源了
for (int i = 0; i < list.Count; i++)
{
dt.Rows[0][i] = list[i];
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧