zoukankan      html  css  js  c++  java
  • xml获取配置DataTable

    经常遇到需要绑定数据源的时候,可是自己从数据库获取数据的函数都是已经封装好了的,这样别人复制你的代码,要想看到结果,还得修改修改,很是麻烦,博客实例,数据源简单点就好,这样别人写你写的实例时,不用新建数据库,或者不用自己整个获取数据源的函数,效率低,我要的是快速看运行结果,实例是否是正确,能够把你的代码复制下来,F5运行就可以直接看到效果。所以我就写了一个通过XML获取配置DataTable.这样以后自己写博客,需要绑定数据源的时候,不同的数据源,修改一下XML就可以了。

    下面的实例的所有数据源都是通过xml获取的

    一,效果图

    核心代码:

    1. public DataTable getDTXML(string xmlname)  
    2.         {  
    3.             DataTable result = new DataTable();  
    4.             string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径  
    5.             XmlDocument xmlDoc = new XmlDocument();  
    6.             xmlDoc.Load(fileName);  
    7.             XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");  
    8.             foreach (XmlNode xOracleNode in xWitsTablesList)  
    9.             {  
    10.                 foreach (XmlNode node2 in xOracleNode.ChildNodes)  
    11.                 {  
    12.                     if (node2.Name == "Header")  
    13.                     {  
    14.                         //   //绑定表头  
    15.                         foreach (XmlNode node3 in node2.Attributes)  
    16.                         {  
    17.                             result.Columns.Add(node3.Value);  
    18.                         }  
    19.                     }  
    20.                     else  
    21.                     {  
    22.                         //数据行  
    23.                         int i = 0;//列标志  
    24.                         DataRow dr = result.NewRow();  
    25.                         foreach (XmlNode node4 in node2.Attributes)  
    26.                         {  
    27.                             dr[i] = node4.Value.ToString();  
    28.                             i++;  
    29.                         }  
    30.                         result.Rows.Add(dr);  
    31.                     }  
    32.   
    33.                 }  
    34.             }  
    35.             return result;  
    36.         }  

    xml示例

    1. <?xml version="1.0" encoding="utf-8" ?>  
    2. <config>  
    3.     <Header  col1="班级编号" col2="班级名称" col3="年级" col4="学校" col5="男生" col6="女生"  col7="人数"/>  
    4.     <row     col1="11" col2="一(一)班" col3="初一" col4="三峡高级中学" col5="20" col6="30"  col7="50"/>  
    5.     <row     col1="12" col2="一(二)班" col3="初一" col4="三峡高级中学" col5="18" col6="12"  col7="30"/>  
    6.     <row     col1="13" col2="一(三)班" col3="初一" col4="三峡高级中学" col5="16" col6="26"  col7="42"/>  
    7.     <row     col1="14" col2="一(四)班" col3="初一" col4="三峡高级中学" col5="23" col6="17"  col7="40"/>  
    8. </config>  

    二,下面贴出源码:

      1)表头配置.xml文件:

     
    1. <?xml version="1.0" encoding="utf-8" ?>  
    2. <config>  
    3.     <Header  col1="班级编号" col2="班级名称" col3="年级" col4="学校" col5="男生" col6="女生"  col7="人数"/>  
    4.     <row     col1="11" col2="一(一)班" col3="初一" col4="三峡高级中学" col5="20" col6="30"  col7="50"/>  
    5.     <row     col1="12" col2="一(二)班" col3="初一" col4="三峡高级中学" col5="18" col6="12"  col7="30"/>  
    6.     <row     col1="13" col2="一(三)班" col3="初一" col4="三峡高级中学" col5="16" col6="26"  col7="42"/>  
    7.     <row     col1="14" col2="一(四)班" col3="初一" col4="三峡高级中学" col5="23" col6="17"  col7="40"/>  
    8. </config>  

     2)readXml.aspx

     
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="readXml.aspx.cs" Inherits="readXml" %>  
    2.   
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    4.   
    5. <html xmlns="http://www.w3.org/1999/xhtml">  
    6. <head runat="server">  
    7.     <title></title>  
    8.     <link rel="Stylesheet" type="text/css" href="Css/readXml.css" />  
    9. </head>  
    10. <body>  
    11.     <form id="form1" runat="server">  
    12.     <div style=" margin-left:30px;"><h2 style="color:Yellow; background-color:Gray;" >通过解析XML获取table</h2></div>  
    13.   
    14.     <div class="gv_one">  
    15.        <asp:GridView runat="server" ID="gv_xml"   
    16.             CellPadding="4" Width="500px"  ForeColor="#333333" GridLines="None" >  
    17.            <AlternatingRowStyle BackColor="White" />  
    18.            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />  
    19.            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />  
    20.            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />  
    21.            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />  
    22.            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />  
    23.            <SortedAscendingCellStyle BackColor="#FDF5AC" />  
    24.            <SortedAscendingHeaderStyle BackColor="#4D0000" />  
    25.            <SortedDescendingCellStyle BackColor="#FCF6C0" />  
    26.            <SortedDescendingHeaderStyle BackColor="#820000" />  
    27.        </asp:GridView>  
    28.     </div>  
    29.   
    30.     <div class="gv_Two">  
    31.        <asp:GridView runat="server" ID="gv_xmlOne"   
    32.             CellPadding="4" Width="500px" ForeColor="#333333" GridLines="None" >  
    33.            <AlternatingRowStyle BackColor="White" />  
    34.            <EditRowStyle BackColor="#2461BF" />  
    35.            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />  
    36.            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />  
    37.            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />  
    38.            <RowStyle BackColor="#EFF3FB" />  
    39.            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />  
    40.            <SortedAscendingCellStyle BackColor="#F5F7FB" />  
    41.            <SortedAscendingHeaderStyle BackColor="#6D95E1" />  
    42.            <SortedDescendingCellStyle BackColor="#E9EBEF" />  
    43.            <SortedDescendingHeaderStyle BackColor="#4870BE" />  
    44.        </asp:GridView>  
    45.     </div>  
    46.     </form>  
    47. </body>  
    48. </html>  

     3)readXml.aspx.cs

     
    1. using System;  
    2. using System.Collections;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Web.Services;  
    6. using System.Web.Services.Protocols;  
    7. using System.Xml.Linq;  
    8. using System.Data;  
    9. using System.Data.SqlClient;  
    10. using System.Xml;  
    11. using System.Data.OleDb;  
    12. using IsXMLUtility;   
    13.   
    14. public partial class readXml : System.Web.UI.Page  
    15. {  
    16.   
    17.     XmlHelper xmlHelper = new XmlHelper();  
    18.     protected void Page_Load(object sender, EventArgs e)  
    19.     {  
    20.         InitGV();  
    21.     }  
    22.   
    23.   
    24.     private void InitGV()  
    25.     {  
    26.         DataTable dt1 = xmlHelper.getDTXML("表头配置");  
    27.         gv_xml.DataSource = dt1.DefaultView;  
    28.         gv_xml.DataBind();  
    29.   
    30.         dt1 = xmlHelper.getDTXML("表头配置""N0", 1);  
    31.         gv_xmlOne.DataSource = dt1.DefaultView;  
    32.         gv_xmlOne.DataBind();  
    33.     }  
    34.   
    35.   
    36.   
    37. }  

     4) XmlHelper.cs

     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Data;  
    6. using System.Xml;  
    7.   
    8. namespace IsXMLUtility  
    9. {  
    10.   
    11.     /// <summary>  
    12.     ///XmlHelper 的摘要说明  
    13.     /// </summary>  
    14.     public class XmlHelper  
    15.     {  
    16.         public XmlHelper()  
    17.         {  
    18.             //  
    19.             //TODO: 在此处添加构造函数逻辑  
    20.             //  
    21.         }  
    22.         public DataTable getDTXML(string xmlname)  
    23.         {  
    24.             DataTable result = new DataTable();  
    25.             string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径  
    26.             XmlDocument xmlDoc = new XmlDocument();  
    27.             xmlDoc.Load(fileName);  
    28.             XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");  
    29.             foreach (XmlNode xOracleNode in xWitsTablesList)  
    30.             {  
    31.                 foreach (XmlNode node2 in xOracleNode.ChildNodes)  
    32.                 {  
    33.                     if (node2.Name == "Header")  
    34.                     {  
    35.                         //   //绑定表头  
    36.                         foreach (XmlNode node3 in node2.Attributes)  
    37.                         {  
    38.                             result.Columns.Add(node3.Value);  
    39.                         }  
    40.                     }  
    41.                     else  
    42.                     {  
    43.                         //数据行  
    44.                         int i = 0;//列标志  
    45.                         DataRow dr = result.NewRow();  
    46.                         foreach (XmlNode node4 in node2.Attributes)  
    47.                         {  
    48.                             dr[i] = node4.Value.ToString();  
    49.                             i++;  
    50.                         }  
    51.                         result.Rows.Add(dr);  
    52.                     }  
    53.   
    54.                 }  
    55.             }  
    56.             return result;  
    57.         }  
    58.   
    59.         /// <summary>  
    60.         ///   
    61.         /// </summary>  
    62.         /// <param name="xmlname">xml名字</param>  
    63.         /// <param name="Header">序号列名字</param>  
    64.         /// <param name="colsNumber">序号开始编号</param>  
    65.         /// <returns></returns>  
    66.         public DataTable getDTXML(string xmlname, string Header, int colsNumber)  
    67.         {  
    68.             DataTable result = new DataTable();  
    69.             if (Header == "")  
    70.                 Header = "N0";  
    71.             if (colsNumber < 0)  
    72.                 colsNumber = 1;  
    73.             result.Columns.Add(Header);  
    74.             string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径  
    75.             XmlDocument xmlDoc = new XmlDocument();  
    76.             xmlDoc.Load(fileName);  
    77.             XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");  
    78.             foreach (XmlNode xOracleNode in xWitsTablesList)  
    79.             {  
    80.                 foreach (XmlNode node2 in xOracleNode.ChildNodes)  
    81.                 {  
    82.                     if (node2.Name == "Header")  
    83.                     {  
    84.                         //绑定表头  
    85.                         foreach (XmlNode node3 in node2.Attributes)  
    86.                         {  
    87.                             result.Columns.Add(node3.Value);  
    88.                         }  
    89.                     }  
    90.                     else  
    91.                     {  
    92.                         //数据行  
    93.                         int i = 1;//列标志  
    94.                         DataRow dr = result.NewRow();  
    95.                         dr[0] = colsNumber;  
    96.                         foreach (XmlNode node4 in node2.Attributes)  
    97.                         {  
    98.                             dr[i] = node4.Value.ToString();  
    99.                             i++;  
    100.                         }  
    101.                         colsNumber++;  
    102.                         result.Rows.Add(dr);  
    103.                     }  
    104.   
    105.                 }  
    106.             }  
    107.             return result;  
    108.         }  
    109.   
    110.   
    111.     }  
    112. }  


     5) readXml.css

     
      1. body{  
      2. margin:0 auto;  
      3. padding:0px;  
      4. font-family:'宋体';  
      5. }  
      6. .gv_one  
      7. {  
      8.     margin-left:30px;  
      9.     width:400px;  
      10.     height:200px;  
      11.     margin-top:20px;  
      12.     border:#A8B7CC solid 1px;  
      13.     background-color:#FFFFFF;  
      14.     overflowscroll;  
      15.     SCROLLBAR-FACE-COLOR:#E0EDFE;  
      16.     PADDING-BOTTOM: 0px;  
      17.     SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;  
      18.     SCROLLBAR-SHADOW-COLOR: #cccccc;  
      19.     SCROLLBAR-3DLIGHT-COLOR:#ffffff;  
      20.     SCROLLBAR-ARROW-COLOR:#95AFD4;  
      21.     PADDING-TOP: 0px;  
      22.     SCROLLBAR-TRACK-COLOR: #ffffff;  
      23.     SCROLLBAR-DARKSHADOW-COLOR: #ffffff;  
      24.     LETTER-SPACING: 1pt;  
      25. }  
      26. .gv_Two  
      27. {  
      28.     margin-left:30px;  
      29.     width:400px;  
      30.     height:200px;  
      31.     margin-top:20px;  
      32.     border:#A8B7CC solid 1px;  
      33.     background-color:#FFFFFF;  
      34.     overflowscroll;  
      35.     SCROLLBAR-FACE-COLOR:#E0EDFE;  
      36.     PADDING-BOTTOM: 0px;  
      37.     SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;  
      38.     SCROLLBAR-SHADOW-COLOR: #cccccc;  
      39.     SCROLLBAR-3DLIGHT-COLOR:#ffffff;  
      40.     SCROLLBAR-ARROW-COLOR:#95AFD4;  
      41.     PADDING-TOP: 0px;  
      42.     SCROLLBAR-TRACK-COLOR: #ffffff;  
      43.     SCROLLBAR-DARKSHADOW-COLOR: #ffffff;  
      44.     LETTER-SPACING: 1pt;  
      45. }  
  • 相关阅读:
    WPF分页控件
    Anroid图标尺寸
    linux常用快捷键
    securecrt中vim行号下划线问题及SecureCRT里root没有高亮的设置,修改linux终端命令行颜色
    ANT-普通替换和正则替换
    js实现IOS上删除app时颤抖动画j函数
    php语法错误导致服务器错误(500)解决
    Linux 常用命令大全2
    Linux 命令行快捷键
    backbone源代码注释(部分)
  • 原文地址:https://www.cnblogs.com/web100/p/xml-dataTable.html
Copyright © 2011-2022 走看看