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+"设置工作日成功");
}
}
}
逻辑上可能还不够简单,欢迎大家指正,谢谢。
C#窗体中读取修改xml文件的更多相关文章
- C#中如何创建xml文件 增、删、改、查 xml节点信息
XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...
- 06_XML的写入_dom4j添加、删除、修改Xml文件内容
[工程截图] [person.xml]准备一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <st ...
- boost::property_tree读取解析.xml文件
boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径 boost::property_tree::wptree wpt; std::locale:: ...
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
一.新建Demo2类: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXPar ...
- 直接读取修改exe文件
1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...
- Java&Xml教程(七)使用JDOM修改XML文件内容
JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...
- Java&Xml教程(三)使用DOM方式修改XML文件内容
DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- ideal中spring的xml文件没有提示的问题
ideal中spring的xml文件没有提示的问题 今天第一次用ideal来练习spring,发现和视频中老师不一样,我的没有提示.老师的视频里,他写了个<mvc:a 就会有一系列的提示,然 ...
随机推荐
- Owin Self Host
http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可 ...
- Docker - Install docker on CentOS
1. 准备 由于 Dokcer 需要 64bit OS, 版本号 3.10 或者更新的版本.所以,需要我们先确认我们的 CentOS 系统 $ uname -r output :: 3.10.0-22 ...
- inq to datatable group by 多列 实现
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.T ...
- testng 失败自动截图
testng执行case failed ,testng Listener会捕获执行失败,如果要实现失败自动截图,需要重写Listener的onTestFailure方法 那么首先新建一个Listene ...
- Debian8.3如何设置默认不启动Gnome
最近又光荣的回归了debian的怀抱,其实我就是跟风,现在做传媒平时也用不到多么高深的计算机知识,纯粹自己瞎鼓捣……嘿嘿,我相信有很多像我一样的人,刚刚装上了debian可以在同事面前华丽丽的装了一逼 ...
- js_跨域
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- STM32F412应用开发笔记之五:结合W5500实现以太网通讯
因实际使用需求我们测试一下网络通讯,在NUCLEO-F412ZG测试板上没有以太网部分,我们选择外接一个W5500的实验板.W5500支持SPI接口通讯,DC3.3V供源.而NUCLEO-F412ZG ...
- 解决UC浏览器或微信浏览器上flex兼容问题
在UC浏览器上使用display:flex;时会不起作用,要加上兼容性写法,如下 display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ disp ...
- html5 Application Cache 机制以及使用
那什么是Application Cache呢? 顾名思义,AppCache就是对app内存缓存的方案,具体表现为当请求某个文件时不是从网络获取该文件,而是从本地内存中获取. Application C ...
- python import cv2 出错:cv2.x86_64-linux-gnu.so: undefined symbol
之前写过一个python使用opencv处理图片的脚本,当时是可以使用的,现在突然发现执行时出错: ImportError: /usr/lib/python2.7/dist-packages/cv2. ...