读取XML文件并生成DataTable

XML格式如下:

<?xml version="1.0" encoding="gb2312"?>

 
    00:00:04:839
    内容
 
 
    00:00:12:707
    内容
 

代码如下:

View Code 

         ///
         /// 从XML文件获取数据
         ///
         /// 数据显示控件
        /// 文件名
          /// 路径
          public void LoadIndexInfo(DataGridView dataGridView, string fileName, string filePath)
         {
              //获取xml文件名
             string xmlName = filePath.Substring(0, filePath.LastIndexOf('\\')) + "\\" + fileName.Substring(0, fileName.LastIndexOf('.')) + ".xml";
 
             try
             {
                 //节点标题
                 string[] header = { "时间", "内容" };
                 XmlDocument xmlDoc = new XmlDocument();
                 xmlDoc.Load(xmlName);
                 //根节点
                 XmlElement root = xmlDoc.DocumentElement;
                //index元素节点
                 XmlElement index = (XmlElement)root.SelectSingleNode("index");
 
                 if (index == null)
                 {
                     while (dataGridView.Rows.Count > 0)
                     {
                         dataGridView.Rows.RemoveAt(0);
                     }
                 }
 
                 //index节点下的节点列表
                 XmlNodeList nodeList = index.ChildNodes;
                 //设置头部
                 DataTable dt = new DataTable();
 
                 //获取列名
                 for (int i = 0; i < header.Length; i++)
                 {
                     DataColumn dc = new DataColumn(header[i]);
                     dt.Columns.Add(dc);
                 }
                 XmlNodeList indexs = root.GetElementsByTagName("index");
                 for (int k = 0; k < indexs.Count; k++)
                 {
                     DataRow dr = dt.NewRow();
                     for (int i = 0; i < nodeList.Count; i++)
                     {
                         dr[i] = indexs[k].ChildNodes[i].InnerText;
                     }
                     dt.Rows.Add(dr);
                 }
                 dt.DefaultView.Sort = dt.Columns["时间"] + " ASC";
             }
             catch(Exception e)
             {
                 throw e;
             }
         }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值