您的位置:首页 > 编程语言 > C#

C# xml 文件的简单操作

2013-12-20 14:53 363 查看
XML 文件格式

<?xml version="1.0" encoding="utf-8"?>

<foot>

  <Coordinator Id="1" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082640.png" CoordName="p1" PhoneNo="123456754" Statue="1" dataTimes="2013/12/13" />

  <Coordinator Id="2" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082652.png" CoordName="p2" PhoneNo="123456754" Statue="1" dataTimes="2013/12/13" />

  <Coordinator Id="3" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082659.png" CoordName="p3" PhoneNo="123456754" Statue="2" dataTimes="2013/12/13" />

  <Coordinator Id="4" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082708.png" CoordName="p4" PhoneNo="123456754" Statue="2" dataTimes="2013/12/13" />

  <Coordinator Id="5" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082718.png" CoordName="p5" PhoneNo="123456754" Statue="3" dataTimes="2013/12/13" />

  <Coordinator Id="6" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082724.png" CoordName="p6" PhoneNo="123456754" Statue="3" dataTimes="2013/12/13" />

  <Coordinator Id="7" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082733.png" CoordName="p7" PhoneNo="123456754" Statue="0" dataTimes="2013/12/13" />

  <Coordinator Id="8" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082741.png" CoordName="p8" PhoneNo="123456754" Statue="0" dataTimes="2013/12/13" />

</foot>

 

  XmlDocument xmldoc = new XmlDocument();

  string docpath = Application.StartupPath + @"..\..\..\ConfigXml\CoordMsg.xml";//存放值班人员信息Xml文件路径

 

        /// <summary>

        /// 获取所有Coordinators对象

        /// 获取所有值班员工信息

        /// </summary>

        /// <returns></returns>

        private List<Coordinator> GetCdinator()

        {

            try

            {

                List<Coordinator> cdinators = new List<Coordinator>();

                xmldoc.Load(docpath);

                XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;

                foreach (XmlNode XN in nodelist)

                {

                    Coordinator cd = new Coordinator();

                    cd.Id = XN.Attributes["Id"].Value;

                    cd.CoordPicUrl = XN.Attributes["ImageUrl"].Value;

                    cd.CoordName = XN.Attributes["CoordName"].Value;

                    cd.Statue = XN.Attributes["Statue"].Value;

                    cd.PhoneNo = XN.Attributes["PhoneNo"].Value;

                    cd.dataTimes = XN.Attributes["dataTimes"].Value;

                    cdinators.Add(cd);

                }

                return cdinators;

            }

            catch (Exception err)

            {

                //MessageBox.Show("获取值班人员信息失败!失败原因:" + err.Message, "提示信息",

                //            MessageBoxButtons.OK, MessageBoxIcon.Information);

                //Application.Exit();

                return null;

            }

        }

 

        /// <summary>

        /// 添加员工信息数据到存储数据文件

        /// </summary>

        /// <param name="cdinator"></param>

        private void AddCoordinatorToDataFile(Coordinator cdinator)

        {

            try

            {

                xmldoc.Load(docpath);

                XmlNode Foot = xmldoc.SelectSingleNode("foot");

                XmlElement NewCd = xmldoc.CreateElement("Coordinator");

                NewCd.SetAttribute("Id", cdinator.Id);

                NewCd.SetAttribute("ImageUrl", cdinator.CoordPicUrl);

                NewCd.SetAttribute("CoordName", cdinator.CoordName);

                NewCd.SetAttribute("PhoneNo", cdinator.PhoneNo);

                NewCd.SetAttribute("Statue", "4");

                NewCd.SetAttribute("dataTimes", cdinator.dataTimes);

                Foot.AppendChild(NewCd);

                xmldoc.Save(docpath);

                if (!string.IsNullOrEmpty(cdinator.CoordPicUrl))

                {

                    File.Copy(LocalPicUrl, CoordPicUrl, true);//数据存储到配置文件后再上传图片到服务器

                }

           

            }

            catch (Exception err)

            {

                MessageBox.Show("添加员工信息失败!失败原因:" + err.Message, "提示信息",

                       MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

        }

 

 

        /// <summary>

        /// 变更修改的数据到数据文件

        /// </summary>

        /// <param name="cdinator"></param>

        private void ModifyCoordinatorToDataFile(Coordinator cdinator)

        {

            try

            {

                xmldoc.Load(docpath);

                XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;

                foreach (XmlNode XN in nodelist)

                {

                    if (XN.Attributes["Id"].Value.ToString() == cdinator.Id)

                    {

                        XN.Attributes["CoordName"].Value = cdinator.CoordName;

                        XN.Attributes["PhoneNo"].Value = cdinator.PhoneNo;

                        if (!string.IsNullOrEmpty(CoordPicUrl))

                        {

                            XN.Attributes["ImageUrl"].Value = CoordPicUrl;

                            File.Copy(LocalPicUrl, CoordPicUrl, true);//数据存储到配置文件后再上传图片到服务器

                            File.Delete(cdinator.CoordPicUrl);//删除旧图片 引发了线程问题,图片在另一个进程中使用(已解决)

                        }

                        xmldoc.Save(docpath);

                    }

                }

            }

            catch (Exception err)

            {

                MessageBox.Show("修改员工信息失败!失败原因:" + err.Message, "提示信息",

                      MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

        }

 

 

        /// <summary>

        /// 从值班员工表中删除指定员工的信息

        /// </summary>

        /// <param name="cdinator">选中员工的信息</param>

        private void DeleteCoordinator(Coordinator cdinator)

        {

            try

            {

                xmldoc.Load(docpath);

                XmlNode foot = xmldoc.SelectSingleNode("foot");

                XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;

                foreach (XmlNode XN in nodelist)

                {

                    if (XN.Attributes["Id"].Value.ToString() == cdinator.Id)

                    {

                        if (!string.IsNullOrEmpty( cdinator.CoordPicUrl))

                        {    

                            File.Delete(cdinator.CoordPicUrl);//删除员工图片

                        }

                     

                        foot.RemoveChild(XN);

                    }

                }

                xmldoc.Save(docpath);

            }

            catch (Exception err)

            {

                MessageBox.Show("删除员工信息失败!失败原因:" + err.Message, "提示信息",

                      MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

   

        }

    }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# Xml