怎么把一个table 的hmtl源码转化成DATATABLE

zlb789 2009-03-31 11:26:00
string xmlData = "<ds><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"tab\" width=\"100%\" style=\"text-align:center; \" id=\"table1\">"
+"<tr>"
+"<td style=\"\">日期</td>"
+"<td style=\"\">订单编号</td>"
+"<td style=\"\">出发地</td>"
+"<td style=\"\">上车时间</td>"
+"<td style=\"\">目的地</td>"
+"<td style=\"\">下车时间</td>"
+"<td style=\"\">车长</td>"
+"<td style=\"\">车牌</td>"
+"<td style=\"\">用户</td>"
+"<td style=\"\">金额</td>"
+"</tr>"

+"<tr>"
+"<td align=\"left\" style=\"\">2009-03-30 12:00</td>"
+"<td align=\"left\">20090320040301281</td>"
+"<td align=\"left\" style=\"\">sfsdf</td>"
+"<td align=\"left\" style=\"\">2009-03-30 04:45</td>"
+"<td align=\"left\" style=\"\">sdfsdf</td>"
+"<td align=\"left\" style=\"\">2009-03-30 10:55</td>"
+"<td align=\"left\" style=\"\">FSJFJL </td>"
+"<td align=\"left\" style=\"\">1</td>"
+"<td align=\"left\" style=\"\">名称21 </td>"
+"<td align=\"right\" style=\"padding-right:3px;\"><span id=\"coco_order_ctl01_lblMoney\">468.00</span></td>"
+"</tr>"
+ "</table>";

可以把这个字符串直接转化成一个DATATABLE 对象吗?
...全文
238 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
heyihong0208 2009-03-31
  • 打赏
  • 举报
回复
不可以直接转换的
但可以把字符串设置一些分隔点,然后在后台用split()方法转换成数组,再保存到DataTable中
xuan.ye 2009-03-31
  • 打赏
  • 举报
回复
注意,xmlData 有改变,原值不符合xml格式,一个地方是 <ds> 一个是<span>
using System.IO;
using System.Xml;
public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string xmlData = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"tab\" width=\"100%\" style=\"text-align:center; \" id=\"table1\">"
+ " <tr>"
+ " <td style=\"\">日期 </td>"
+ " <td style=\"\">订单编号 </td>"
+ " <td style=\"\">出发地 </td>"
+ " <td style=\"\">上车时间 </td>"
+ " <td style=\"\">目的地 </td>"
+ " <td style=\"\">下车时间 </td>"
+ " <td style=\"\">车长 </td>"
+ " <td style=\"\">车牌 </td>"
+ " <td style=\"\">用户 </td>"
+ " <td style=\"\">金额 </td>"
+ " </tr>"

+ " <tr>"
+ " <td align=\"left\" style=\"\">2009-03-30 12:00 </td>"
+ " <td align=\"left\">20090320040301281 </td>"
+ " <td align=\"left\" style=\"\">sfsdf </td>"
+ " <td align=\"left\" style=\"\">2009-03-30 04:45 </td>"
+ " <td align=\"left\" style=\"\">sdfsdf </td>"
+ " <td align=\"left\" style=\"\">2009-03-30 10:55 </td>"
+ " <td align=\"left\" style=\"\">FSJFJL </td>"
+ " <td align=\"left\" style=\"\">1 </td>"
+ " <td align=\"left\" style=\"\">名称21 </td>"
+ " <td align=\"right\" style=\"padding-right:3px;\"> 468.00</td>"
+ " </tr>"
+ " </table>";
DataSet ds = new DataSet();
using (StringReader stream = new StringReader(xmlData))
{
XmlTextReader xmlreader = new XmlTextReader(stream);
ds.ReadXml(xmlreader);
}
}
}
cwmwss 2009-03-31
  • 打赏
  • 举报
回复
帮顶
moonshineidolon 2009-03-31
  • 打赏
  • 举报
回复
好像没有什么可以直接使用的方法。需要自己写。
阿非 2009-03-31
  • 打赏
  • 举报
回复
你只有自己写 函数
用split()先找 列头, 然后substring()截取 单元格,然后创建datatable的列
还要注意屏蔽HTML代码,和数据类型的转换
coodd 2009-03-31
  • 打赏
  • 举报
回复
没这种直接转的函数,不过字符串很整齐,写代码处理也相对容易
zlb789 2009-03-31
  • 打赏
  • 举报
回复
解决了
谢谢 各位 最好还是用正则搞定的
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Sandy945 的回复:]
你只有自己写 函数
用split()先找 列头, 然后substring()截取 单元格,然后创建datatable的列
还要注意屏蔽HTML代码,和数据类型的转换
[/Quote]
正解
zlb789 2009-03-31
  • 打赏
  • 举报
回复
6 楼的
这样转换了 好象table的格式不大对劲
感觉有点乱

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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