XML也可以像数据库一样存储数据,如果用C#读取XML文件当中存储的数据,这样避免了与数据库的交互,节省了大量的时间开支,读取速度比较快。XML具有的优点:开放性,简单性,自我描述性,互操作性,结构和内容分离,可扩展性。在XML编程之中,C#是其最强大而快速的开发工具。
以25亿企业网站管理系统中的源码作为实例深刻讲解用asp.net(C#)操纵XML文件。
我们以25亿企业网站管理系统中对在线交流程序的处理为例。在线交流配置的数据保存于XML文件夹下的contactset.config文件中,在线交流客服添加的数据在XML文件夹下的contact.config文件中。此文件的XML格式如下:
<?xml version="1.0" encoding="utf-8"?>
<companycontactset>
<contactset>
<language>zh-CN</language>
<contactsetid>1</contactsetid>
<contactsettype>4</contactsettype>
<rightdistance>153</rightdistance>
<topdistance>118</topdistance>
<qqtype>4</qqtype>
<alwwtype>2</alwwtype>
<msntype>1</msntype>
<contactsetintro>Tel:0731-87337385</contactsetintro>
</contactset>
</companycontactset>
C#对contactset.config的XML格式文件的读取代码如下:
#region 获取在线交流配置
/// <summary>
/// 获取在线交流配置
/// </summary>
[AjaxPro.AjaxMethod]
public DataTable GetContactSet(string language)
{
string url = "../../Xml/contactset.config";//获得当前文件夹下的XML文件
DataSet ds = COMM.handlexml.dsXML(url, " language = '"+language+"'");
return ds.Tables[0];
}
#endregion 获取在线交流配置
获取在线交流配置存储DataTable中,然后相应的取值。
C#对contactset.config的XML格式文件的更新代码如下:
string Url = HttpContext.Current.Server.MapPath("../../Xml/contactset.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Url); //加载XML文件
XmlNode root = xmlDoc.SelectSingleNode("companycontactset");
XmlNodeList xnl = root.ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlNodeList xnl11 = xnl.Item(i).SelectNodes("language");
XmlElement xe = (XmlElement)xnl11.Item(0);
if (xe.InnerText == Language) //获取节点以及所有子集的串联值
{
xe.ParentNode.ChildNodes.Item(2).InnerText = Request["radcontactsettype"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(3).InnerText = Request["txtrightdistance"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(4).InnerText = Request["txttopdistance"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(5).InnerText = Request["rdqq"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(6).InnerText = Request["rdalww"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(7).InnerText = Request["rdmsn"].ToString().Trim();
xe.ParentNode.ChildNodes.Item(8).InnerText = Request["txtcontactsetintro"].ToString().Trim();
break;
}
}
xmlDoc.Save(Url);
C#对contact.config的XML格式文件的添加数据代码如下:
string Url = HttpContext.Current.Server.MapPath("../../Xml/contact.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Url);
XmlNode root = xmlDoc.SelectSingleNode("companycontact");
XmlElement httpinfo = xmlDoc.CreateElement("contact");
string id;
//创建第一个节点的第一个元素
if (root.HasChildNodes)
{
id = Convert.ToString(Convert.ToInt32(root.LastChild.FirstChild.InnerText) + 1);
}
else
{
id = "1";
}
//设置ID
XmlElement id2 = xmlDoc.CreateElement("contact_id");
//创建第一个节点的第一个元素里的属性
id2.InnerText = id;//设置文本节点
httpinfo.AppendChild(id2);
//设置httpinfo_title
XmlElement contacttitle = xmlDoc.CreateElement("contact_title");
contacttitle.InnerText = Request["txtcontacttitle"].ToString().Trim();
httpinfo.AppendChild(contacttitle);
//设置httpinfo_loginnum
XmlElement contactorder = xmlDoc.CreateElement("contact_order");
contactorder.InnerText = Request["txtcontactorder"].ToString().Trim();
httpinfo.AppendChild(contactorder);
//设置httpinfo_addtime
XmlElement contactqq = xmlDoc.CreateElement("contact_qq");
contactqq.InnerText = Request["txtcontactqq"].ToString().Trim();
httpinfo.AppendChild(contactqq);
//设置httpinfo_endtime
XmlElement contactalww = xmlDoc.CreateElement("contact_alww");
contactalww.InnerText = Request["txtcontactalww"].ToString().Trim();
httpinfo.AppendChild(contactalww);
XmlElement contactmsn = xmlDoc.CreateElement("contact_msn");
contactmsn.InnerText = Request["txtcontactmsn"].ToString().Trim();
httpinfo.AppendChild(contactmsn);
XmlElement contacttime = xmlDoc.CreateElement("contact_time");
contacttime.InnerText = DateTime.Now.ToString().Trim();
XmlElement language = xmlDoc.CreateElement("language");
contacttime.InnerText = Language;
httpinfo.AppendChild(language);
root.AppendChild(httpinfo);
xmlDoc.Save(Url);//保存XML文件
C#对contact.config的XML格式文件的操作删除代码如下:
string Url = HttpContext.Current.Server.MapPath("../../Xml/contact.config");
//获取行信息的索引字段httpinfo_title
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Url); //加载XML文件
XmlNode root = xmlDoc.SelectSingleNode("companycontact");//查找webhttp节点
XmlNodeList xnl = root.ChildNodes; //获取webhttp下面所以子节点
string[] alldelid = yiRequest.GetString2("delid").Split(new Char[] { ',' });
for (int k = 0; k < alldelid.Length; k++)
{
for (int i = 0; i < xnl.Count; i++)
{
XmlNodeList xnl11 = xnl.Item(i).SelectNodes("contact_id");//查找httpinfo_title下面节点集合
XmlElement xe = (XmlElement)xnl11.Item(0); //httpinfo_title节点下面的元素
if (xe.InnerText == alldelid[k].ToString().Trim()) //获取节点以及所有子集的串联值
{
root.RemoveChild(xe.ParentNode);//移除指顶节点
}
}
}
xmlDoc.Save(Url);
C#对config的XML格式文件的操作(添加,删除,修改,读取)代码讲解完成,表达非常简单,需要深刻体会,请研究25亿企业网站管理系统源码。
作者: 企业网站管理系统
原载: 25亿企业网站管理系统
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。