C#创建、写入和读取xml文档

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值