1. 程式人生 > >讀取XML檔案並生成DataTable

讀取XML檔案並生成DataTable

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; } }