在开发中时常需要将一些必要的配置进行保存,等下次程序启动时直接读取,使程序不至于每次进去都要重新配置。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的基本操作。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐