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

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

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

    一,效果图

    核心代码:

    public DataTable getDTXML(string xmlname)
            {
                DataTable result = new DataTable();
                string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");
                foreach (XmlNode xOracleNode in xWitsTablesList)
                {
                    foreach (XmlNode node2 in xOracleNode.ChildNodes)
                    {
                        if (node2.Name == "Header")
                        {
                            //   //绑定表头
                            foreach (XmlNode node3 in node2.Attributes)
                            {
                                result.Columns.Add(node3.Value);
                            }
                        }
                        else
                        {
                            //数据行
                            int i = 0;//列标志
                            DataRow dr = result.NewRow();
                            foreach (XmlNode node4 in node2.Attributes)
                            {
                                dr[i] = node4.Value.ToString();
                                i++;
                            }
                            result.Rows.Add(dr);
                        }
    
                    }
                }
                return result;
            }

    xml示例

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


    二,下面贴出源码:

      1)表头配置.xml文件:

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

     2)readXml.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="readXml.aspx.cs" Inherits="readXml" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link rel="Stylesheet" type="text/css" href="Css/readXml.css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div style=" margin-left:30px;"><h2 style="color:Yellow; background-color:Gray;" >通过解析XML获取table</h2></div>
    
        <div class="gv_one">
           <asp:GridView runat="server" ID="gv_xml" 
                CellPadding="4" Width="500px"  ForeColor="#333333" GridLines="None" >
               <AlternatingRowStyle BackColor="White" />
               <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
               <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
               <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
               <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
               <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
               <SortedAscendingCellStyle BackColor="#FDF5AC" />
               <SortedAscendingHeaderStyle BackColor="#4D0000" />
               <SortedDescendingCellStyle BackColor="#FCF6C0" />
               <SortedDescendingHeaderStyle BackColor="#820000" />
           </asp:GridView>
        </div>
    
        <div class="gv_Two">
           <asp:GridView runat="server" ID="gv_xmlOne" 
                CellPadding="4" Width="500px" ForeColor="#333333" GridLines="None" >
               <AlternatingRowStyle BackColor="White" />
               <EditRowStyle BackColor="#2461BF" />
               <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
               <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
               <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
               <RowStyle BackColor="#EFF3FB" />
               <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
               <SortedAscendingCellStyle BackColor="#F5F7FB" />
               <SortedAscendingHeaderStyle BackColor="#6D95E1" />
               <SortedDescendingCellStyle BackColor="#E9EBEF" />
               <SortedDescendingHeaderStyle BackColor="#4870BE" />
           </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    

     3)readXml.aspx.cs

    using System;
    using System.Collections;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Data;
    using System.Data.SqlClient;
    using System.Xml;
    using System.Data.OleDb;
    using IsXMLUtility; 
    
    public partial class readXml : System.Web.UI.Page
    {
    
        XmlHelper xmlHelper = new XmlHelper();
        protected void Page_Load(object sender, EventArgs e)
        {
            InitGV();
        }
    
    
        private void InitGV()
        {
            DataTable dt1 = xmlHelper.getDTXML("表头配置");
            gv_xml.DataSource = dt1.DefaultView;
            gv_xml.DataBind();
    
            dt1 = xmlHelper.getDTXML("表头配置", "N0", 1);
            gv_xmlOne.DataSource = dt1.DefaultView;
            gv_xmlOne.DataBind();
        }
    
    
    
    }

     4) XmlHelper.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data;
    using System.Xml;
    
    namespace IsXMLUtility
    {
    
        /// <summary>
        ///XmlHelper 的摘要说明
        /// </summary>
        public class XmlHelper
        {
            public XmlHelper()
            {
                //
                //TODO: 在此处添加构造函数逻辑
                //
            }
            public DataTable getDTXML(string xmlname)
            {
                DataTable result = new DataTable();
                string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");
                foreach (XmlNode xOracleNode in xWitsTablesList)
                {
                    foreach (XmlNode node2 in xOracleNode.ChildNodes)
                    {
                        if (node2.Name == "Header")
                        {
                            //   //绑定表头
                            foreach (XmlNode node3 in node2.Attributes)
                            {
                                result.Columns.Add(node3.Value);
                            }
                        }
                        else
                        {
                            //数据行
                            int i = 0;//列标志
                            DataRow dr = result.NewRow();
                            foreach (XmlNode node4 in node2.Attributes)
                            {
                                dr[i] = node4.Value.ToString();
                                i++;
                            }
                            result.Rows.Add(dr);
                        }
    
                    }
                }
                return result;
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="xmlname">xml名字</param>
            /// <param name="Header">序号列名字</param>
            /// <param name="colsNumber">序号开始编号</param>
            /// <returns></returns>
            public DataTable getDTXML(string xmlname, string Header, int colsNumber)
            {
                DataTable result = new DataTable();
                if (Header == "")
                    Header = "N0";
                if (colsNumber < 0)
                    colsNumber = 1;
                result.Columns.Add(Header);
                string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\Xml\" + xmlname + ".xml";//xml的物理路径
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");
                foreach (XmlNode xOracleNode in xWitsTablesList)
                {
                    foreach (XmlNode node2 in xOracleNode.ChildNodes)
                    {
                        if (node2.Name == "Header")
                        {
                            //绑定表头
                            foreach (XmlNode node3 in node2.Attributes)
                            {
                                result.Columns.Add(node3.Value);
                            }
                        }
                        else
                        {
                            //数据行
                            int i = 1;//列标志
                            DataRow dr = result.NewRow();
                            dr[0] = colsNumber;
                            foreach (XmlNode node4 in node2.Attributes)
                            {
                                dr[i] = node4.Value.ToString();
                                i++;
                            }
                            colsNumber++;
                            result.Rows.Add(dr);
                        }
    
                    }
                }
                return result;
            }
    
    
        }
    }


     5) readXml.css

    body{
    margin:0 auto;
    padding:0px;
    font-family:'宋体';
    }
    .gv_one
    {
        margin-left:30px;
    	400px;
    	height:200px;
    	margin-top:20px;
    	border:#A8B7CC solid 1px;
    	background-color:#FFFFFF;
    	overflow: scroll;
    	SCROLLBAR-FACE-COLOR:#E0EDFE;
    	PADDING-BOTTOM: 0px;
    	SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;
    	SCROLLBAR-SHADOW-COLOR: #cccccc;
    	SCROLLBAR-3DLIGHT-COLOR:#ffffff;
    	SCROLLBAR-ARROW-COLOR:#95AFD4;
    	PADDING-TOP: 0px;
    	SCROLLBAR-TRACK-COLOR: #ffffff;
    	SCROLLBAR-DARKSHADOW-COLOR: #ffffff;
    	LETTER-SPACING: 1pt;
    }
    .gv_Two
    {
        margin-left:30px;
    	400px;
    	height:200px;
        margin-top:20px;
    	border:#A8B7CC solid 1px;
    	background-color:#FFFFFF;
    	overflow: scroll;
    	SCROLLBAR-FACE-COLOR:#E0EDFE;
    	PADDING-BOTTOM: 0px;
    	SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;
    	SCROLLBAR-SHADOW-COLOR: #cccccc;
    	SCROLLBAR-3DLIGHT-COLOR:#ffffff;
    	SCROLLBAR-ARROW-COLOR:#95AFD4;
    	PADDING-TOP: 0px;
    	SCROLLBAR-TRACK-COLOR: #ffffff;
    	SCROLLBAR-DARKSHADOW-COLOR: #ffffff;
    	LETTER-SPACING: 1pt;
    }
    
    



     





  • 相关阅读:
    EffectiveJava(18)接口优先于抽象类
    EffectiveJava(17)要么为继承而设计,要么禁止继承
    EffectiveJava(16)复合优先于继承
    EffectiveJava(15)强化对象和域的不可变性
    EffectiveJava(14)在公有类中使用访问方法而非公有域
    EffectiveJava(13)使类和成员的可访问性最小化
    CentOS 6 安装 MySQL 8.0.+
    Gradle sync failed: Cannot set the value of read-only property 'outputFile'
    Error:Execution failed for task ':xutils:mergeDebugAndroidTestResources'. > No slave process to proc
    Error:All flavors must now belong to a named flavor dimension.
  • 原文地址:https://www.cnblogs.com/pangblog/p/3424120.html
Copyright © 2011-2022 走看看