在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;width: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;width: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;
}

转载于:https://www.cnblogs.com/pangblog/p/3424120.html

xml获取配置DataTable相关推荐

  1. digester java_[jakarta-commons] 使用Digester解释xml获取java对象(代码入注规则 或 配置规则 任你选!)...

    # re: [jakarta-commons] 使用Digester解释xml获取java对象(代码入注规则 或 配置规则 任你选!) 2009-11-09 10:27 | Java小子 楼主,运行起 ...

  2. boot spring 获取请求端口浩_6、如何获取配置中心的配置

    公众号:java乐园 在<配置中心>这一篇博文里学习了如何git获取配置文件.大概的流程可以用下图来概括. <配置中心>这篇博文说的是Config Server,本篇将和大家看 ...

  3. 使用XML作为配置表,WinForm程序读取配置表来动态显示控件

    一.首先创建一个XML文件定义以下格式(uName:显示的中文字,uKey:代表控件的Name属性,ukeyValue:代表是否显示) 二.项目中定义一个通用类,来存放读取的值 这三个字段对应XML文 ...

  4. Spring Cache抽象-基于XML的配置声明(基于EhCache的配置)

    概述 完整示例 pomxml增加依赖 数据库表数据Oracle 实体类 服务层 ehcache的配置文件 Spring-EhCache配置文件 单元测试 日志输出 日志分析 示例源码 概述 首先请阅读 ...

  5. Spring Cache抽象-基于XML的配置声明(基于ConcurrentMap的配置)

    概述 示例 项目结构 数据库表数据Oracle 实体类 服务层 Spring配置文件 单元测试 日志输出 日志分析 示例源码 概述 Spring Cache基于注解的配置 如果不想使用注解或者由于其他 ...

  6. Spring学习(五)bean装配详解之 【XML方式配置】

    本文借鉴:Spring学习(特此感谢!) 一.配置Bean的方式及选择 配置方式 在 XML 文件中显式配置 在 Java 的接口和类中实现配置 隐式 Bean 的发现机制和自动装配原则 方式选择的原 ...

  7. maven setting.xml 中文配置详解(全配置)

    <?xml version="1.0" encoding="UTF-8"?> <!--| 官方文档: https://maven.apache ...

  8. java spring bean配置文件_Spring基于xml文件配置Bean过程详解

    这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过全类名来配置: class:be ...

  9. Struts2的struts.xml的配置细节

    2019独角兽企业重金招聘Python工程师标准>>> (七)Struts2的struts.xml的配置细节 这里说的struts.xml说到的包含内容如下: 1.include包含 ...

最新文章

  1. SetGet and MACRO
  2. python 核心编程 第十三章
  3. 像诗一样的 Javascript 代码(转)
  4. LeetCode-Partition List-分割链表-链表操作
  5. AutoML:机器学习的下一波浪潮
  6. Struts2_HelloWorld_2
  7. 前端学习(41):背景实现视觉差效果
  8. 数据结构上机实验之二分查找
  9. SpringBoot安装和创建简单的Web应用
  10. emacs(考场+平时)配置方案
  11. 播放列表php代码,【求助】如何直接在Discuz! 代码 FLASH代码中添加优酷播放列表...
  12. 三、Spring Cloud的配置 之 服务提供者 配置
  13. Android ListView 代码1
  14. MATLAB(五) 图像处理--图像分割
  15. 高等数学(预备知识之两角和差、二倍角与半角公式)
  16. 如何制作价目表制作报价单
  17. DEDECMS织梦中华美食网早期版本菜谱网整站源码
  18. 鹅厂、狗厂、猫厂、熊厂、鸟厂、粮厂
  19. 如何做好跨境电商,先了解3个基本观念
  20. 2016 中兴签约经验

热门文章

  1. realloc() 用法详解
  2. SQL SERVER的字段类型说明
  3. 设置cookie,跨域取值
  4. java 文件压缩_java实现文件压缩
  5. php把字符串变成多组,php把字符串变成数组(有分隔符)
  6. (31)System Verilog类class详解
  7. 函数平移口诀_初三二次函数平移规律的口诀
  8. 电脑没有ps怎么改照片dpi_设计干货整理丨 平面设计师必知的打印常识与电脑性能...
  9. 8006.ros2发布与订阅
  10. 8004.ros2中添加boost依赖库写法