将数据写入XML配置文件中

 

创建一个XML文件

        /// <summary>
        /// 创建xml
        /// </summary>
        public void createXMl()
        {
           //设置配置文件的路径
            XmlTextWriter myXmlTextWriter = new XmlTextWriter(@"..\..\Config\Config.xml", null);
            //使用 Formatting 属性指定希望将 XML 设定为何种格式。 
            //子元素就可以通过 Indentation 和 IndentChar 属性来缩进。
            myXmlTextWriter.Formatting = Formatting.Indented;
            myXmlTextWriter.WriteStartDocument(false);
            myXmlTextWriter.WriteStartElement("store");
            myXmlTextWriter.WriteComment("记录信息");//xml中备注
            myXmlTextWriter.WriteStartElement("item");
            //设置节点的属性
            myXmlTextWriter.WriteAttributeString("Type", "类型");
            myXmlTextWriter.WriteAttributeString("Time", "2015-12-1");


            //设置子节点
            myXmlTextWriter.WriteElementString("code", "123");
            myXmlTextWriter.WriteElementString("name", "名称");
            myXmlTextWriter.WriteElementString("price", "33.0");



            myXmlTextWriter.WriteEndElement();
            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();

        }    

向配置文件中填写数据

 /// <summary>
        /// 给XML添加数据
        /// </summary>
        public void AddXML()
        {
            ///加载文件并选出要结点:
            XmlDocument doc = new XmlDocument();
            doc.Load(@"..\..\Config\Config.xml");
            XmlNode root = doc.SelectSingleNode("store");

            //创建一个结点
            XmlElement xelKey = doc.CreateElement("item");
            //设置结点的属性:
            //XmlAttribute xelType = doc.CreateAttribute("Type");
            //xelType.InnerText = "adfdsf";
            //xelKey.SetAttributeNode(xelType);
            //创建子结点
            XmlElement xelAuthor1 = doc.CreateElement("code");
            xelAuthor1.InnerText = "销售商代码7";
            XmlElement xelAuthor2 = doc.CreateElement("name");
            xelAuthor2.InnerText = "销售商名字7";
            XmlElement xelAuthor3 = doc.CreateElement("price");
            xelAuthor3.InnerText = "邮箱7";
         

            xelKey.AppendChild(xelAuthor1);
            xelKey.AppendChild(xelAuthor2);
            xelKey.AppendChild(xelAuthor3);
        
            // 最后把book结点挂接在要结点上,并保存整个文件:
            root.AppendChild(xelKey);
            doc.Save(@"..\..\Config\Config.xml");
        }

读取出已有的XML数据并循环遍历转换成泛型集合返回出去

 /// <summary>
        /// 获取xml文件中的数据
        /// </summary>
        public List<xmlModel> GetXmlInfo()
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;//忽略文档里面的注释
            XmlReader reader = XmlReader.Create(@"..\..\Config\Config.xml", settings);
            xmlDoc.Load(reader);
            XmlNode xn = xmlDoc.SelectSingleNode("NewDataSet");
            XmlNodeList xnl = xn.ChildNodes;
            List<xmlModel> xmlModelList = new List<xmlModel>();
            foreach (XmlNode xn1 in xnl)
            {
                xmlModel xmlModel = new xmlModel();
                // 将节点转换为元素,便于得到节点的属性值
                XmlElement xe = (XmlElement)xn1;
                // 得到属性的属性值
                //XmlAttribute xelType = doc.CreateAttribute("Type");
                //xelType.InnerText = "adfdsf";
                // 得到itme节点的所有子节点
                XmlNodeList xnl0 = xe.ChildNodes;
                xmlModel.SaleCode = xnl0.Item(0).InnerText;
                xmlModel.SaleName = xnl0.Item(1).InnerText;
                xmlModel.Email = xnl0.Item(2).InnerText;
                xmlModel.UserMoblic = xnl0.Item(3).InnerText;
            
                xmlModelList.Add(xmlModel);
                reader.Close();
            }

            return xmlModelList;
        }

 

posted @ 2015-12-11 19:30  风吹一点云  阅读(3368)  评论(0编辑  收藏  举报