25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

asp.net(C#)操纵诸如config的XML格式文件


时间:2010/02/06   来源:25亿

          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亿企业网站管理系统
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

点击次数:       打印此页  关闭