zoukankan      html  css  js  c++  java
  • C#窗体中读取修改xml文件

    由于之前没有操作过xml文件,尤其是在窗体中操作xml,脑子一直转不动,而且很抵制去做这个功能,终于还是突破了自己通过查询资料完成了这个功能,在此记录一下自己的成果。

    功能说明:程序中存在的xml文件,然后通过选择的日历中的某一天去匹配xml文件中是否存在这一天,如果存在则删除xml中的数据,如果不存在添加一条数据。

    代码说明:

    private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
            {
                var selectTime = monthCalendar1.SelectionStart.ToString("yyyy-MM-dd");//获取选中的日期
                var weburl = Application.StartupPath;//获取文件路径
                var xmlName = "NotWorkDay.xml";//xml文件名称
                var filefullName = weburl + "\" + xmlName;//组装的路径

                XmlDocument xmldoc = new XmlDocument();
                ColorDialog fontcolor = new ColorDialog();
                //xmldoc.Load(filefullName);
                List<string> retList = new List<string>();
                var t = 0;//是否存在数据的标识
                if (System.IO.File.Exists(filefullName))
                {
                    //已经存在该文件,判断该文件是否存在日期,如果存在则修改不存在则创建
                    xmldoc.Load(filefullName);
                    XmlNodeList xnl = xmldoc.GetElementsByTagName("非工作日");
                    foreach (XmlNode xxNode in xnl)
                    {
                        //retList.Add(xxNode.Attributes["name"].Value);
                        if (selectTime == xxNode.Attributes["name"].Value)
                        {
                            t++;
                            var root = xmldoc.DocumentElement.SelectSingleNode("日期"); //取到根结点
                            root.RemoveChild(xxNode);
                            xmldoc.Save(filefullName);
                            break;
                        }
                        
                    }
                    if (t == 0)
                    {//如果xml中没有该数据,则插入
                        XmlElement node = (XmlElement) xmldoc.SelectSingleNode("非工作日设置/日期/非工作日");
                        node.SetAttribute("name", selectTime);
                        node.SetAttribute("id", selectTime);
                        xmldoc.Save(filefullName);
                        richTextBox1.AppendText(selectTime + "非工作日添加成功");
                    }
                    else
                    {
                        richTextBox1.AppendText(selectTime+"设置工作日成功");
                    }
                    
                }
            }

    逻辑上可能还不够简单,欢迎大家指正,谢谢。

  • 相关阅读:
    题解CF566D Restructuring Company
    题解CF986F Oppa Funcan Style Remastered
    题解P2371 [国家集训队]墨墨的等式
    题解 CF1203D2 Remove the Substring (hard version)
    题解 CF1202D Print a 1337-string...
    ubuntu apt-get install php
    jwt refresh token
    读过的laravel文章
    delete all untracked files
    自定义UserProvider,更改验证方法
  • 原文地址:https://www.cnblogs.com/whm-163/p/5103531.html
Copyright © 2011-2022 走看看