加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

读取XML文件并生成DataTable

发布时间:2020-12-16 06:14:15 所属栏目:百科 来源:网络整理
导读:XML格式如下: ?xml version="1.0" encoding="gb2312"? indexs index time 00:00:04:839 / time content 内容 / content / index index time 00:00:12:707 / time content 内容 / content / index / indexs 代码如下: /// summary /// 从XML文件获取数据 //

XML格式如下:

<?xml version="1.0" encoding="gb2312"?>
<indexs>
  <index>
    <time>00:00:04:839</time>
    <content>内容</content>
  </index>
  <index>
    <time>00:00:12:707</time>
    <content>内容</content>
  </index>

</indexs>

代码如下:

/// <summary>
        /// 从XML文件获取数据
        /// </summary>
        /// <param name="dataGridView">数据显示控件</param>
        /// <param name="fileName">文件名</param>
        /// <param name="filePath">路径</param>
        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;
            }
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读