在开发中时常需要将一些必要的配置进行保存,等下次程序启动时直接读取,使程序不至于每次进去都要重新配置。C#提供默认的App.config配置,但是不要以为这个是可以满足配置的读写,其实App.config对于程序是只读的,不支持写入。鉴于这个原因,推荐使用xml保存配置。
首先是xml的创建:
private XmlDocument _config = new XmlDocument();
/// <summary>
/// 创建xml
/// </summary>
public void CreateXml()
{
//创建XmlDeclaration节点
XmlDeclaration dec = _config.CreateXmlDeclaration("1.0", "utf-8", null);
//将节点添加到文件中
_config.AppendChild(dec);
//创建根节点
XmlElement StudentList = _config.CreateElement("StudentList");
//将根节点添加到文档
_config.AppendChild(StudentList);
//保存xml
_config.Save("config.xml");
}
创建完成后就可以进行读写操作,以下是xml的读写:
/// <summary>
/// 写入xml
/// </summary>
/// <param name="sClass"></param>
/// <param name="sNumber"></param>
/// <returns></returns>
public bool WriteXml(string sClass,string sNumber)
{
//要写入的文件是否存在
if (!File.Exists("config.xml"))
{
return false;
}
//加载xml
_config.Load("config.xml");
//获取根节点
XmlElement xml = _config.DocumentElement;
//移除所有节点
_config.DocumentElement.RemoveAll();
//创建子节点
XmlElement Class = _config.CreateElement("class");
//给子节点赋值
Class.InnerText = sClass;
//将子节点添加到文档
xml.AppendChild(Class);
XmlElement number = _config.CreateElement("Number");
number.InnerText = sNumber;
xml.AppendChild(number);
//保存配置
_config.Save("config.xml");
return true;
}
/// <summary>
/// 读取xml
/// </summary>
/// <param name="student"></param>
/// <returns></returns>
public bool ReadXml(Dictionary<string,string> student)
{
if (!File.Exists("config.xml"))
{
return false;
}
_config.Load("config.xml");
//获取根节点
XmlElement xml = _config.DocumentElement;
//从根节点获取所有子节点
XmlNodeList xnl = xml.ChildNodes;
//遍历所有节点
foreach (XmlNode item in xnl)
{
XmlElement xe = (XmlElement)item;
XmlNodeList xl = xe.ChildNodes;
//将遍历到的值追加到Dictionary中
if (xe.Name == "class")
{
student.Add("class",xe.InnerText);
}
if (xe.Name == "Number")
{
student.Add("Number", xe.InnerText);
}
}
return true;
}
下面是写入数据后的xml
<?xml version="1.0" encoding="utf-8"?>
<StudentList>
<class>1班</class>
<Number>888666</Number>
</StudentList>
以上就是C#对xml的基本操作。