xml获取配置DataTable_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > xml获取配置DataTable

xml获取配置DataTable

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

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

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

一,效果图

核心代码:

    class="dp-c" start="1">
  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. }  
发表评论
用户名: 匿名