您的位置:首页 > 编程语言 > C#

c# Xml文件的编写(初学者参阅)

2008-11-30 16:43 134 查看
本文只对XmlElement这个Xml节点类型进行讨论

对于第一次接触Xml文件的人,首先要搞清楚一些基本概念是必要的。

Xml文件是一个典型的树状结构,为此我们必须搞清楚什么是“树”。

我们必须明确两个概念:“树”和“节点”

所谓的“树”是一种数据结构的类型。

所谓的“节点”就是构成“树”的每一个元素。

我们举一个简单的例子来说明“树”及其功能:

只要用过资源管理器的人,都不会陌生“树”,因为右侧的“文件夹”视图,就是一个典型的“树”状结构。

我们看到的“文件夹”,就是一个个的“节点”。

下面看看每一个“节点”都要有什么属性。

1.每一个文件夹都可以包含许多别的文件夹,因此“节点”同样,也可以包括很多的“节点”

2.每一个文件夹只属于一个文件夹所有,因此“节点”同样,也只能被一个“节点”所包含,不可以被多个“节点”所包含。

搞清楚了什么是“树”,“节点”以及“节点”的属性,下面构造Xml文件的工作,实际上就是构造一个“树”状结构。

构造一个“树”,我们只需要两个基本的操作

1. 构造“节点”

2. 确定“节点”被谁包含

因此构建Xml文件,最基本的就是2个操作,一个是构建Xml文件的节点,另一个是将这个节点连接到Xml文件中(就是确定这个节点被谁所包含)

下面具体介绍构建Xml文件的过程。

在c#中,要使用Xml文件的相关操作,必须引入System.Xml命名空间 using System.Xml;

第一步:创建Xml文档

想要构建Xml文档,自然先要打开一个空白的文档,如同使用Word编辑文档时,先要建一个空白文档一样。

创建Xml文档的代码是:

doc = new XmlDocument();

这样,xd就是你要的空白文档了。

第二步:加一个声明的段落

这一步对于初学者来说,直接写上下面的代码就可以了

XmlNode xn = doc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
doc.AppendChild(xn);

这里面比较重要的就是doc.AppendChild(xn)这句,这就是我们需要的建立连接时用到的语句。其含义就是将xn连接到doc上。(让doc包含xn)

第三步:创建节点

完成了上述两步,就可以进行“建立节点”和“建立连接”这两个基本操作了。

创建节点也需要两个过程,因为节点包含它的名称,和内容两部分。(当然,内容可有可无,但是名称不可缺少。如同文件夹内可以没有东西,但是文件夹必须有名称一样)

1.建立节点并命名节点

XmlElement xe = doc.CreateElement("", "节点名称", "");

这里建立节点使用doc创建的,也就是空白文档中创建,但是必须注意,在空白文档中创建的节点,不意味着连接到了空白文档。我们还需要自己连接这个节点到空白文档上(也就是把节点写入空白文档)

2.建立节点内容

XmlText xt = xd.CreateTextNode("节点内容");

同创建节点一样,内容也是有doc(空白文档)中创建的,但是这个内容也只是一段文字而已,必须连接到刚才创建的节点中,才能成为刚才节点的内容。

3.将节点内容,连接到节点上

xe.AppendChild(xt);

这句话是不是很眼熟,对a.AppendChild(b)刚才我们已经见过了。它的意思就是将b连接到a上。所有的连接都可以这么做。

这样一个有内容的节点就被创建好了。

第三步:将节点连接到空白文档上

这一步我想看过第二步的朋友已经可以自己写出来了。没错,就是用a.AppendChild(b)这句话

doc.AppendChild(xe);

这样,我们就建好了一个拥有xe节点的xml文档。

这里需要注意下面这个问题

节点不光可以连接到文档上,也可里连接到其他节点上。

例如:有xe1, xe2两个节点,我们可以

xe1.AppendChild(xe2);

将节点2连接到节点1上。

doc.AppendChild(xe1);

再将节点1连接到文档中。

这就如同,根目录(doc)中建立一个新的文件夹(xe1),然后又在xe文件夹中新建一个(xe2)的文件夹一样。

这种连接可以一直进行下去。

第四步:保存文档

创建了空白文档(doc),我们必须要保存文档。

doc.Save(path);

这里的path就是要保存文件的路径。比如"c:/a.xml"

经过以上四步及重复第二、三步,我们就可以建立一个比较复杂的Xml文档并保存了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: