RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
asp.net与xml的连接
  • 作者: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();

也可以实现分页

小弟才疏学浅 还要请大家多多指点