开发网站有点麻木了,发现很多的数据在使用中其实只是一两个月才更新一会的。就这都要放到数据库中去,增加了数据库的负担。所以我想将这些数据放到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();
也可以实现分页
小弟才疏学浅 还要请大家多多指点
博主开发网站时,发现部分更新频率低的数据存于数据库会增加负担,于是尝试将其存于XML,但修改和输出不如数据库便捷。博主编写了与DataSource接口的类,使用xmlDocument的xpath查询数据,可实现数据绑定和分页。

被折叠的 条评论
为什么被折叠?



