前言:
许多有数据存储要求的场合我们第一个想到的就是数据库或者利用序列化来存储成为文件,实际上上面两种方法都略显麻烦,其实我们有更好的选择,那就是用xml文件来实现数据存储和调用。
本教程主要讲解如何用C#来操作xml,所以你必须先具备xml语言的基础知识(如果你对此不熟悉那么可以到网上下载一个w3c的教程仔细看看)和C#的基础知识,其中涉及的到xpath本教程会做介绍,但重点是教会大家如何使用c#及用VS2017的控件及函数来操作xml文件,达到增、删、改、查等目的。
载入xml文档之前我们首先必须知道我们的文档在哪里,也就是说要首先获得xml文档的路径,所首先我们介绍几种C#自带的获取路径的方法。
a) 文件路径的获取
文件路径的获取这里我提供几种方法:
获得当前目录:
string xmlpath = Environment.CurrentDirectory;
获得启动目录:
string xmlpath =System.Windows.Forms.Application.StartupPath;
获得当前域名下的根目录:
string xmlpath =System.AppDomain.CurrentDomain.BaseDirectory;
实际上,这几种方法在项目处于编写调试阶段的时候获得的路径都是一样的,但如果程序打包发布了,这几个方法获得的路径就有差别了。
b) 载入xml文件
Xml文档的载入,有两种方法,第一种是通过XmlDocument对象的load方法加载,第二种是通过Xdocument对象的load方法加载。
我们首先来看XMLDocument的加载方法,我们必须注意,任何对于xml的操作都必须先引入System.xml名称空间。
首先构造一个xmlDocument对象来装载将要载入的xml文档,方法如下:
xmlDocument xmlDoc=new xmlDocument();
然后调用xmlDocument的load方法:
xmlDoc.load(xmlpath +”testxml.xml”)
通过XDocument加载,XDocument是专门提供给linq来操作xml的对象,所以我们在使用的时候必须先引入System.xml.linq方可使用。
直接用它的静态方法来载入文档
XDocument xDoc=XDocument.Load(xmlpath)
c) 代码实现
假定我们在Form中添加了一个listbox控件,掌握了上述两种方法后,我们用代码实现如下:
假设我们的xmltext.xml中有如下的内容:
<List name="salarylist" date="2018-12-30">
<id value="1">
<name value="Steven" />
<years value="8"/>
<amount value="8000"/>
</id>
</List>
运行效果如下:
这一篇,我们主要完成了C#对xml的基础操作,下一篇,我们将进一步讨论xml的树形结构以及节点的增删改查的操作。