由于之前没有操作过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+"设置工作日成功");
                }
                
            }
        }

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

C#窗体中读取修改xml文件的更多相关文章

  1. C#中如何创建xml文件 增、删、改、查 xml节点信息

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...

  2. 06_XML的写入_dom4j添加、删除、修改Xml文件内容

    [工程截图] [person.xml]准备一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <st ...

  3. boost::property_tree读取解析.xml文件

    boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径  boost::property_tree::wptree wpt;    std::locale:: ...

  4. XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容

    一.新建Demo2类: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXPar ...

  5. 直接读取修改exe文件

    1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...

  6. Java&Xml教程(七)使用JDOM修改XML文件内容

    JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...

  7. Java&Xml教程(三)使用DOM方式修改XML文件内容

    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...

  8. matlab中读取txt数据文件(txt文本文档)

    matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...

  9. ideal中spring的xml文件没有提示的问题

    ideal中spring的xml文件没有提示的问题 今天第一次用ideal来练习spring,发现和视频中老师不一样,我的没有提示.老师的视频里,他写了个<mvc:a   就会有一系列的提示,然 ...

随机推荐

  1. 内存动态分配之realloc(),malloc(),calloc()与new运算符

    1,malloc与free是C/C++的标准库函数,new/delete是C++的运算符,是C++面向对象的特征,它们都可用于申请动态内存和释放内存.2,对于非内部数据类型的对象而言,光用maloc/ ...

  2. Swift3新特性汇总

    之前 Apple 在 WWDC 上已将 Swift 3 整合进了 Xcode 8 beta 中,而本月苹果发布了 Swift 3 的正式版.这也是自 2015 年底Apple开源Swift之后,首个发 ...

  3. Latex中插入C语言代码

    Latex是一个文本排版的语言,能排版出各种我们想要的效果.而且用代码排版的优点是易于修改板式,因此在文本内容的排版时,Latex应用十分广泛. 当我们需要在Latex中插入代码时,就需要用到 \us ...

  4. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  5. tp框架实现验证码

    今天来看一个小插件. tp框架是怎么实现验证码的. 又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html <!DOCTYPE html PUBLIC &q ...

  6. Maven之安装与简单入门一

    Maven 是一个项目管理和构建自动化工具,我们最关心的是它的项目构建功能.Maven 使用惯例优于配置的原则. 1,下载安装包,并根据文档说明安装: http://maven.apache.org/ ...

  7. java.sql.SQLException: ORA-01000: 超出打开游标的最大数

    实际上,这个错误的原因,主要还是代码问题引起的.  ora-01000: maximum open cursors exceeded.  表示已经达到一个进程打开的最大游标数.  这样的错误很容易出现 ...

  8. Python学习笔记(3)

      1.元组 元组的定义符号是() ,元素定义与列表完全一致.不同的是元组的内容是不可变的. 2.字典 字典里面的内容是无序的. 字典的元素组成形式是 key:value key的定义规则:key是不 ...

  9. css雪碧图生成工具4.1更新

    V4.0介绍地址:http://www.cnblogs.com/wang4517/p/4493917.html 此次更新主要针对已有BUG的修复,用户可在客户端上直接看到更新信息,自己去下载 已修复问 ...

  10. [Linux] 查看jar包内容

    jar vtf  fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] file ...