使用C#代码读写XML文件

使用C#代码读写XML文件

一、创建XML文件

  private void CreateXml()
    {
        //创建XML文档实例
        XmlDocument xmlDoc = new XmlDocument();

        //创建根节点
        XmlElement root = xmlDoc.CreateElement("config");

        //创建子节点
        XmlElement _child1 = xmlDoc.CreateElement("name1");
        //设置节点中的数值
        _child1.InnerText = "添加的内容1";
        root.AppendChild(_child1);

        //创建子节点
        XmlElement _child2 = xmlDoc.CreateElement("name2");
        //设置节点中的数值
        _child2.InnerText = "添加的内容2";
        root.AppendChild(_child2);

        xmlDoc.AppendChild(root);

        //把XML文件保存至本地
        xmlDoc.Save(XmlPath);
    }

new 一个XmlDocument 对象之后,再调用Save方法, 这样就创建了一个空的XML文件了。然后就是在XML中添加内容,创建的XmlElement通过AppendChild添加到XML中。同理,你也可在子节点下继续创建子节点,可以一直这样添加下去(可以,但是没必要创建太多)。

运行结果:

<config>
  <name1>添加的内容1</name1>
  <name2>添加的内容2</name2>
</config>

如果你想在你的XML文件中通过代码插入备注,你可以这样写:

        //创建注释
        XmlComment _com = xmlDoc.CreateComment("注释内容");
        root.AppendChild(_com);

运行结果:

<config>
  <!--注释内容-->
  <name1>添加的内容1</name1>
  <name2>添加的内容2</name2>
</config>

二、添加XML元素

   private void AddXML()
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(XmlPath);
        XmlNode root = xmlDoc.SelectSingleNode("config");
        //新加节点
        XmlElement elmNew = xmlDoc.CreateElement("name3");
        elmNew.InnerText = "新添加的内容";
        root.AppendChild(elmNew);

        xmlDoc.Save(XmlPath);
    }

添加元素也是先获得XmlDocument对象,只是需要同过Load方法读取已经有的XML文件,再使用SelectSingleNode方法找到root节点,新增子节点和创建子节点是一样的,最后将子节点添加到根节点下,然后保存XML文件。

运行结果:

<config>
  <!--注释内容-->
  <name1>添加的内容1</name1>
  <name2>添加的内容2</name2>
  <name3>添加的内容</name3>
</config>

三、XML文件数据的读取

 Dictionary<string, string> _testDic = new Dictionary<string, string>();
    private void ReadXML()
    {
        _testDic.Clear();
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(XmlPath);
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("config").ChildNodes;
        //遍历每一个子节点 
        foreach (var xe in nodeList)
        {
            //过滤注释
            XmlElement _temp = null;
            if (xe is XmlElement)
            {
                _temp = xe as XmlElement;
            }
            else
            {
                continue;
            }
            if (_testDic.ContainsKey(_temp.Name))
            {
                continue;
            }
            _testDic.Add(_temp.Name, _temp.InnerText);
        }
        LogXML();
    }

    private void LogXML()
    {
        foreach (var item in _testDic)
        {
            Debug.Log(string.Format("key:{0},value:{1}",item.Key,item.Value));
        }
    }

读取XML的内容是根据你创建的XML文件所决定的,你怎样创建数据结构的,就怎么取数据。我想要存取的数据比较简单,所以就用字典来存数据了。另外,如果你的XML文件里面有注释,记得判断类型。

运行结果:

image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,908评论 0 5
  • 非本人所写,在学习的时候觉得写的挺详细的。分享一下。 XML文件是一种常用的文件格式,例如WinForm里面的ap...
    毕竟是秀秀啊阅读 2,696评论 0 2
  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 3,684评论 0 7
  • 当数据量增大到超出了单个物理计算机存储容量时,有必要把它分开存储在多个不同的计算机中。那些管理存储在多个网络互连的...
    单行线的旋律阅读 1,945评论 0 7
  • 前言:学习数据开始~ 1.PlayerPrefs类(是数据持久化的类,像游戏中的存档啊什么的) (1)是个静态类,...
    Joe_Game阅读 829评论 0 1