- 作者:zhaozj
- 发表时间:2020-12-23 10:58
- 来源:未知
开发网站有点麻木了,发现很多的数据在使用中其实只是一两个月才更新一会的。就这都要放到数据库中去,增加了数据库的负担。所以我想将这些数据放到xml中,但是发现在作修改和输出时没有数据库的来的快,麻烦!不知道大家没有没这样的感觉?
好,言归正转在使用中我写了一个类是与DataSource接口用的!代码如下:using System;using System.Collections; using System.Xml;using System.Data;
namespace Xml{ /// <summary> /// Xml 的摘要说明。 /// </summary> public class TXml { /// <summary> /// 创建Xml写任务 /// </summary> public TXml() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 自定义数据绑定 /// </summary> /// <param name="XmlFilePath">xml文件路径</param> /// <param name="XmlPath">XPath 搜索条件</param> /// <returns>返回与DataSource相对应的借口</returns> public ICollection CreateDataSource(string XmlFilePath,string XmlPath) { DataTable dt = new DataTable(); DataRow dr; XmlDocument XD=new XmlDocument(); XD.Load(XmlFilePath); XmlNodeList xl= XD.SelectNodes(XmlPath); if(xl!=null && xl.Count>0) { int j; for(j=0;j<xl[0].Attributes.Count;j++) { dt.Columns.Add(new DataColumn(xl[0].Attributes.Item(j).LocalName, typeof(string))); } dt.Columns.Add(new DataColumn(xl[0].LocalName, typeof(string)));
for (int i = 0; i < xl.Count; i++) { dr = dt.NewRow(); for(j=0;j<xl[i].Attributes.Count;j++) { dr[j]=xl[i].Attributes.Item(j).InnerText; } dr[j]=xl[i].InnerText; dt.Rows.Add(dr); }
} DataView dv = new DataView(dt); return dv; } }}
在这个类中我使用的xmlDocument的xpath将数据直接查询
如果我想要某个节点下的记录 只需要键入DataGrid1.DataSource=new TXml().CreateDataSource(Server.MapPath("A.xml"),"//Data/D");DataGrid1.DataBind();
也可以实现分页
小弟才疏学浅 还要请大家多多指点