c# 操作临时数据---XML操作
class Config
{
static string path;
/// <summary>
/// 配置文件的路径
/// </summary>
public static string Path
{
get { return path; }
set { path = value; }
}
private XmlDocument xml;
private static Config instance; /// <summary>
/// 单件实例
/// </summary>
public static Config Instance
{
get
{
if (instance == null)
instance = new Config();
return instance;
}
} private Config()
{
items = new Hashtable();
xml = new XmlDocument();
if (!System.IO.File.Exists(path))
{
xml.AppendChild(xml.CreateXmlDeclaration("1.0", "utf-8", null));
xml.AppendChild(xml.CreateElement("Config"));
try
{
string dir = System.IO.Path.GetDirectoryName(path);
if (!System.IO.Directory.Exists(dir))
System.IO.Directory.CreateDirectory(dir);
}
catch { }
}
else
{
try
{
xml.Load(path);
}
catch (XmlException)
{
//如果 Xml 读取失败, 则重新创建
xml.AppendChild(xml.CreateXmlDeclaration("1.0", "utf-8", null));
xml.AppendChild(xml.CreateElement("Config"));
}
}
} /// <summary>
/// 储存
/// </summary>
public void Save()
{
foreach (object key in items.Keys)
{
XmlNode node = xml.DocumentElement.SelectSingleNode("Item[@Name='" + key.ToString() + "']");
if (node == null)
{
node = xml.CreateElement("Item");
XmlAttribute att = xml.CreateAttribute("Name");
att.Value = key.ToString();
node.Attributes.Append(att);
xml.DocumentElement.AppendChild(node);
}
node.InnerText = items[key].ToString();
} xml.Save(path);
items.Clear();
} /// <summary>
/// 读取和存储
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public string this[string key]
{
get
{
if (items.Contains(key))
{
return items[key].ToString();
}
else
{
XmlNode node = xml.DocumentElement.SelectSingleNode("Item[@Name='" + key + "']");
if (node == null)
return null;
return node.InnerText;
}
}
set
{
items[key] = value;
}
} /// <summary>
/// 储存值的链表
/// </summary>
private Hashtable items;
}
读取xml内容:
Config.Path = Path.Combine(Environment.CurrentDirectory, "config.xml");
runTime = Convert.ToDateTime(Config.Instance["RunTime"]); //获取每日运行时间
todayDone = Config.Instance["TodayDone"]; //获取今日是否完成的标识
写入:
#region 修改配置文件
public static bool ChangeConfig(string AppKey, string AppValue)
{
Config.Instance[AppKey] = AppValue;
Config.Instance.Save();
return true;
}
#endregion
ChangeConfig("TodayDone", "");
c# 操作临时数据---XML操作的更多相关文章
- C#常用操作类库三(XML操作类)
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
- MySQL数据库(2)- 库的操作、表的操作、数据的操作、存储引擎的介绍
一.库的操作 1.系统数据库 执行如下命令,查看系统数据库: mysql> show databases; 参数解释: information_schema: 虚拟库,不占用磁盘空间,存储的是数 ...
- 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作
不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...
- 使用dom4j处理xml操作xml数据
使用dom4j处理xml操作xml数据 示例代码: public class TestDom4j { public static void main(String[] args) { String x ...
- Open XML操作Excel导入数据
项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...
- PHP XML操作的各种方法解析
PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序.本章将要介绍 PHP与 XML的操作方法,并对几个常用的 XML类库做一些简要介绍. XML是一种流行的半结构化文 ...
- PowerShell 数组以及XML操作
PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrAr ...
- T-Sql(五)xml操作
t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
随机推荐
- java中的POJO、PO、VO分别是什么?
1.PO:persistant object 持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择. 2. VO:value object值对象. 通常 ...
- MVC,MVP,MVVM的区别
MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的.不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难 ...
- c++面试题中经常被面试官面试的小问题总结(二)(本篇偏向指针知识)
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/10713204.html 1.利用指针交换两个字符串方法?(这题是我当年读大一的时候看到的,好怀 ...
- 设置spacevim字体显示乱码问题
https://github.com/powerline/fonts clone powerline fonts 仓库 执行项目中的 install.sh 安装字体 修改终端配置中使用的字体为 xxx ...
- elixir中的truth和true
在elixir中, true 就是true 或者是:true 是一个原子 atom, 在其他语言中的true,这里叫做truth, 只要你不是false,nil ,就是truth, 当然 false和 ...
- struts2 基本流程
一.配置过程 1.在web.xml中配置过滤器 <filter> <filter-name>StrutsPrepareAndExecuteFilter</filter-n ...
- 环境准备 Ubuntu & Docker
目录 Ubuntu 简介 配置 Docker 简介 Docker CE 安装 参考 本文主要讲解在 Ubuntu 上安装和配置 Docker CE. Ubuntu 简介 Ubuntu(乌班图)是一个基 ...
- android应用执行需要root权限的shell命令
导入jar包:http://blog.csdn.net/zhw1551706847/article/details/77709142 RootTools:http://blog.csdn.net/st ...
- java并发编程(7)构建自定义同步工具及条件队列
构建自定义同步工具 一.通过轮询与休眠的方式实现简单的有界缓存 public void put(V v) throws InterruptedException { while (true) { // ...
- iOS 自定义步骤进度条
新项目要做入驻功能,其中包括一个入住流程,类似登录或者注册流程如下图. 之前想着用自己绘图来做,可是又懒不想多写代码,所以就想着能不能用进度条来做. 1.用进度条做的首先要解决的是进度条的高度问题,可 ...