打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
xml与datatable互转类
userphoto

2012.06.17

关注
  1. public static DataTable GetDataTable(string xmlStr)       
  2.         {       
  3.             XmlDocument doc = new XmlDocument();       
  4.             doc.LoadXml(xmlStr);       
  5.        
  6.             XmlNodeList xlist = doc.SelectNodes("//DataTable/Rows");       
  7.             DataTable Dt = new DataTable();       
  8.             DataRow Dr;       
  9.        
  10.              for (int i = 0; i < xlist.Count; i++)       
  11.              {       
  12.                 Dr = Dt.NewRow();       
  13.                 XmlElement xe = (XmlElement)xlist.Item(i);       
  14.                 for (int j = 0; j < xe.Attributes.Count; j++)       
  15.                 {       
  16.                     if (!Dt.Columns.Contains("@" + xe.Attributes[j].Name))       
  17.                         Dt.Columns.Add("@" + xe.Attributes[j].Name);       
  18.                     Dr["@" + xe.Attributes[j].Name] = xe.Attributes[j].Value;       
  19.                 }       
  20.                 for (int j = 0; j < xe.ChildNodes.Count; j++)       
  21.                 {       
  22.                     if (!Dt.Columns.Contains(xe.ChildNodes.Item(j).Name))       
  23.                         Dt.Columns.Add(xe.ChildNodes.Item(j).Name);       
  24.                     Dr[xe.ChildNodes.Item(j).Name] = xe.ChildNodes.Item(j).InnerText;       
  25.                 }       
  26.                 Dt.Rows.Add(Dr);       
  27.             }       
  28.             return Dt;       
  29.         }       
  30.        
  31.        
  32.         public static string GetXml(DataTable dt)       
  33.         {       
  34.             string strXml = @"<?xml version='1.0' encoding='UTF-8' ?><DataTable />";       
  35.             XmlDocument doc = new XmlDocument();       
  36.             doc.LoadXml(strXml);       
  37.             XmlNode root = doc.SelectSingleNode("//DataTable");       
  38.             // 创建子节点       
  39.             for (int j = 0; j < dt.Rows.Count; j++)       
  40.             {       
  41.                 XmlElement xe = doc.CreateElement("Rows");       
  42.                 XmlElement xeChild = null;       
  43.                 if (!Object.Equals(dt, null))       
  44.                 {       
  45.                     for (int i = 0; i < dt.Columns.Count; i++)       
  46.                     {       
  47.                         if (dt.Columns[i].ColumnName.StartsWith("@"))       
  48.                         {       
  49.                             string AttributeName = dt.Columns[i].ColumnName.Replace("@""");       
  50.                             // 为该子节点设置属性       
  51.                             xe.SetAttribute(AttributeName, dt.Rows[j][i].ToString());       
  52.                         }       
  53.                         else       
  54.                         {       
  55.                              xeChild = doc.CreateElement(dt.Columns[i].ColumnName);       
  56.        
  57.                             try       
  58.                             {       
  59.                                 xeChild.InnerXml = dt.Rows[j][i].ToString();       
  60.                             }       
  61.                             catch       
  62.                             {       
  63.                                 xeChild.InnerText = dt.Rows[j][i].ToString();       
  64.                             }       
  65.                             xe.AppendChild(xeChild);       
  66.                         }       
  67.                     }       
  68.                 }       
  69.                 // 保存子节点设置       
  70.                 root.AppendChild(xe);       
  71.             }       
  72.             return doc.InnerXml.ToString();       
  73.         }      
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DataTable转换成JSON格式数据
DataTable转换为二维数组
C#怎么取到datatable中数据的每一列的标题部分?
DataTable 修改列名 删除列名 调整列名 列顺序
把两张DataTable拼接成一张全新的DataTable
unity3d学习笔记(十六)unity3d读取plist或xml文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服