20
2012
05

DataSet与Xml文件之间的转化、对XML的基本操作

转化

        #region xml文件内容转化为DataSet
        /// <summary>
        /// xml文件内容转化为DataSet
        /// </summary>
        /// <param name="XmlFilePath"></param>
        /// <returns></returns>
        public static DataSet XmlToDataSet(string XmlFilePath)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(XmlFilePath);
            return ds;
        }
        #endregion

        #region DataSet保存为Xml文件
        /// <summary>
        /// DataSet保存为Xml文件
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="XmlFilePath">Xml文件的物理全路径</param>
        /// <returns>返回错误提示信息,空表示没错误</returns>
        public static string DataSetToXmlFile(DataSet ds, string XmlFilePath)
        {
            string ErrorString = "";
            XmlDataDocument xd = new XmlDataDocument(ds);
            xd.Save(XmlFilePath);
            return ErrorString;
        }
        #endregion

 

操作XML

        /// <summary>
        /// 读取Web.config中的配置
        /// </summary>
        private void ReadWeb_config()
        {
            XmlDocument xmldoc = new XmlDocument();//新xml文档对象
            xmldoc.Load(Server.MapPath("Web.config"));  // 加载现有的xml文档

            XmlNodeList appsettingslist = xmldoc.SelectNodes("/configuration/appSettings/add");//查找节点集合
            foreach (XmlNode node in appsettingslist)
            {
                XmlElement xe = (XmlElement)node;
                Response.Write("key:"+xe.Attributes["key"].Value+"<br/>");
                Response.Write("value:" + xe.Attributes["value"].Value + "<br/>");
            }
        }

        /// <summary>
        /// 创建xml文档
        /// </summary>
        private void testCreate()
        {
            XmlDocument xmldoc = new XmlDocument();//新xml文档对象
            //xmldoc.Load(Server.MapPath("data.xml"));  // 这句可以加载现有的xml文档

            //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
           XmlDeclaration xmldecl  = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
           xmldoc.AppendChild(xmldecl);//元素加入到文档

           XmlElement xmlelem = xmldoc.CreateElement("", "myroot", "");
           xmldoc.AppendChild(xmlelem);//文档加入一个(根)节点 myroot

           XmlNode root = xmldoc.SelectSingleNode("myroot");//查找唯一的节点"myroot"这个根结点

           XmlElement appsetings=xmldoc.CreateElement("appSettings");
           root.AppendChild(appsetings);//在根结点下加入appSettings节点
            XmlNode appsettingdNode=root.FirstChild;//root下面创建的唯一的子结点appsettings
           //加入另外的子元素
           for (int i = 1; i <= 4; i++)
           {

               XmlElement xe1 = xmldoc.CreateElement("add");//创建一个<Node>节点
               xe1.SetAttribute("key", "key"+i);//设置该节点key属性
               xe1.SetAttribute("value", "value"+i);//设置该节点value属性

               appsettingdNode.AppendChild(xe1);
           }
         
           xmldoc.Save(Server.MapPath("data.xml"));//操作修改完成后得保存
           Response.Write("创建成功!");
        }

        /// <summary>
        /// 查找和修改xml文档
        /// </summary>
        private void testModify()
        {
            XmlDocument xmldoc = new XmlDocument();//新xml文档对象
            xmldoc.Load(Server.MapPath("data.xml"));  // 加载现有的xml文档

            XmlNode root = xmldoc.SelectSingleNode("myroot");//查找唯一的节点"myroot"这个根结点
            XmlNodeList list = root.FirstChild.ChildNodes;//第三层(xml自己要知道结构才能更精确定地查找)节点集合

            //加入另外的子元素
            foreach (XmlNode node1 in list)
            {
                XmlElement xe1 = (XmlElement)node1;//节点转换为元素来处理。
                if (xe1.GetAttribute("key") == "key1") //查到key值为key1的节点
                {
                    xe1.SetAttribute("value", "modified_value");//更新该节点value属性
                }
            }
            // RemoveAttribute、RemoveChild 分别为删除属性和子节点 。
            xmldoc.Save(Server.MapPath("data.xml"));//操作修改完成后得保存
            Response.Write("修改成功!");
        }

 



版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。