Welcome

首页 / 软件开发 / C# / 在C#中编写XML

在C#中编写XML2010-09-12在我的上一篇文章中和大家讨论了如何使用.NET Framework中提供的类在C#中读取XML以及读取的一些相关概念,那么今天就说一说如何在C#中编写XML文档,起初我觉得用编程的方式去编写XML简直就是自讨苦吃,后来想想还是觉得挺有用的,我想Microsoft那班家伙能编出这些类来应该不是仅仅为了向比尔i盖茨交差吧!至于它的用处嘛……比如说做安装程序啊!我们可以根据在安装过程中用户所选的选项以及一些设置来生成相应的XML文档再根据XML文档来初始化我们的应用程序。空洞的话不说那么多了,下面我们来了解一下具体的实现细节。

要编写XML同样是采用流的概念,在.NET中编写XML的细节是作为XmlWriter类来实现的,但该类是抽象类不能够实例化,为此,我们要想在程序中访问它的方法以实现编写XML的愿望,必需使用它的派生类XmlTextWriter,该类提供了一系列的属性和方法为我们编写XML做准备,下面将详细的介绍这个类:

构造函数:

public XmlTextWriter(TextWriter);
public XmlTextWriter(Stream, Encoding);
public XmlTextWriter(string, Encoding);

第一个构造函数是把现有的TextWriter实例传递过去,System.IO.TextWriter类是一个有序的字符流

第二个构造函数是把要写入的流作为第一个参数,第二个参数是指定XML文档的编码方式,默认是UTF8,可取Encoding的枚举值,流可以是FileStream,MemoryStream,NetworkStream等等

第三个构造函数是把希望写入的文件名当作一个字符串(如果存在,就重写该文件)传递给第一个参数,第二个参数指定编码方式

常用的方法:

WriterStartDocument()和WriterEndDocument()方法:

第一个方法用来编写XML声明部分,如:<?xml version=”1.0” encoding=”UTF-8” ?>

第二个方法用来关闭任何打开的元素或属性并将编写器重新设置为 Start 状态。

WriterStartElement()和WriteEndElement()方法:

第一个方法用来写出指定的开始标记,该方法有以下几个重载:

WriterStartElement(string localname)

使用传递的字符串作为元素的本地名称

WriterStartElement(string localname,string namespace)

第一个参数指定元素的本地名称,第二个参数指定元素所在的命名空间

WriterStartElement(string prefix,string localname,string namespace)

第一个参数指定元素的前缀,第二个参数指定元素的本地名称,第三个参数指定元素所在的命名空间

第二个方法用来写出与开始元素对应的关闭元素,如果开始元素不包含任何内容,将用一个”/>”做为关闭元素

WriterStartAttribute()和WriterEndAttribute()方法:

第一个方法用于编写一个属性的开头,该方法有两个重载:

WriterStartAttribute(string localname,string namespace)

第一个参数指定属性的本地名称,第二个参数指定属性所在的命名空间

WriterStartAttribute(string prefix,string localname,string namespace)

第一个参数指定属性的前缀,第二个参数指定属性的本地名称,第三个参数指定属性所在的命名空间

第二个方法用于关闭WriterStartAttribute创建的属性