C# xml 文件的简单操作

本文介绍了一个基于XML文件的员工信息管理系统实现方法,包括如何读取、添加、修改和删除员工数据的具体步骤。通过实例展示了使用C#进行XML文件解析与操作的过程。

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);
            }
   
        }
    }

 

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值