C# 写入XML要编写XML同样是采用流的概念,在.NET中编写XML的细节是作为XmlWriter类来实现的,但该类是抽象类不能够实例化,为此,我们要想在程序中访问它的方法以实现编写XML的愿望,必需使用它的派生类XmlTextWriter,该类提供了一系列的属性和方法为我们编写XML做准备,下面将详细的介绍这个类: 
C# 写入XML
C# 写入XML构造函数: 
C# 写入XML
C# 写入XMLpublic XmlTextWriter(TextWriter); 
C# 写入XML
C# 写入XMLpublic XmlTextWriter(Stream, Encoding); 
C# 写入XML
C# 写入XMLpublic XmlTextWriter(string, Encoding); 
C# 写入XML
C# 写入XML第一个构造函数是把现有的TextWriter实例传递过去,System.IO.TextWriter类是一个有序的字符流 
C# 写入XML
C# 写入XML第二个构造函数是把要写入的流作为第一个参数,第二个参数是指定XML文档的编码方式,默认是UTF8,可取Encoding的枚举值,流可以是FileStream,MemoryStream,NetworkStream等等 
C# 写入XML
C# 写入XML第三个构造函数是把希望写入的文件名当作一个字符串(如果存在,就重写该文件)传递给第一个参数,第二个参数指定编码方式 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XML常用的方法: 
C# 写入XML
C# 写入XMLWriterStartDocument()和WriterEndDocument()方法: 
C# 写入XML
C# 写入XML第一个方法用来编写XML声明部分,如:
<?xml version=”1.0” encoding=”UTF-8” ?> 
C# 写入XML
C# 写入XML第二个方法用来关闭任何打开的元素或属性并将编写器重新设置为 Start 状态。 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterStartElement()和WriteEndElement()方法: 
C# 写入XML
C# 写入XML第一个方法用来写出指定的开始标记,该方法有以下几个重载: 
C# 写入XML
C# 写入XMLWriterStartElement(string localname) 
C# 写入XML
C# 写入XML使用传递的字符串作为元素的本地名称 
C# 写入XML
C# 写入XMLWriterStartElement(string localname,string namespace) 
C# 写入XML
C# 写入XML第一个参数指定元素的本地名称,第二个参数指定元素所在的命名空间 
C# 写入XML
C# 写入XMLWriterStartElement(string prefix,string localname,string namespace) 
C# 写入XML
C# 写入XML第一个参数指定元素的前缀,第二个参数指定元素的本地名称,第三个参数指定元素所在的命名空间 
C# 写入XML
C# 写入XML第二个方法用来写出与开始元素对应的关闭元素,如果开始元素不包含任何内容,将用一个”/>”做为关闭元素 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterStartAttribute()和WriterEndAttribute()方法: 
C# 写入XML
C# 写入XML第一个方法用于编写一个属性的开头,该方法有两个重载: 
C# 写入XML
C# 写入XMLWriterStartAttribute(string localname,string namespace) 
C# 写入XML
C# 写入XML第一个参数指定属性的本地名称,第二个参数指定属性所在的命名空间 
C# 写入XML
C# 写入XMLWriterStartAttribute(string prefix,string localname,string namespace) 
C# 写入XML
C# 写入XML第一个参数指定属性的前缀,第二个参数指定属性的本地名称,第三个参数指定属性所在的命名空间 
C# 写入XML
C# 写入XML第二个方法用于关闭WriterStartAttribute创建的属性 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterElementString()方法: 
C# 写入XML
C# 写入XML该方法可以创建一个包含字符串值的元素,它有以下重载: 
C# 写入XML
C# 写入XMLWriterElementString(string localname,string value) 
C# 写入XML
C# 写入XML如果编写这样的代码:WriterElementString(“para”,”Some text”) 将输出:
<para>Some text</para> 
C# 写入XML
C# 写入XMLWriterElementString(string localname,string namespace,string value) 
C# 写入XML
C# 写入XML如果编写这样的代码:WriterElementString(“para”,”http://www.w3.org/ns”,”Some text”) 将输出:
<para xmlns=”http://www.w3.org/ns”>Some text</para> 
C# 写入XML
C# 写入XML如果编写嵌套几级的元素可使用WriterStartElement()和WriterEndElement()方法,如果编写直接包含内容的元素可以使用该方法 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterAttributeString()方法: 
C# 写入XML
C# 写入XML类似与WriterElementString()方法,在使用上如果属性的值当中不包含实体可直接使用该方法来写出属性,如果属性值包含实体可使用WriterStartAttribute()和WriterEndAttribute()方法,例如要写出这样的XML——
<para author=”Do&0241;a&amp;L.Perez”/>,可编写以下代码: 
C# 写入XML
C# 写入XMLWriterStartElement(“para”); 
C# 写入XML
C# 写入XMLWriterStartAttribute(“author”,null); 
C# 写入XML
C# 写入XMLWriterString(“Do”); 
C# 写入XML
C# 写入XMLWriterCharEntiry(“~n”); 
C# 写入XML
C# 写入XMLWriterString(“a”); 
C# 写入XML
C# 写入XMLWriterCharEntiry(“&”); 
C# 写入XML
C# 写入XMLWriterString(“L.Perez”); 
C# 写入XML
C# 写入XMLWriterEndAttribute(); 
C# 写入XML
C# 写入XMLWriterEndElement(); 
C# 写入XML
C# 写入XML该方法有以下重载: 
C# 写入XML
C# 写入XMLWriterAttributeString(string localname,string value); 
C# 写入XML
C# 写入XMLWriterAttributeString(string localname,string namespace,string value); 
C# 写入XML
C# 写入XMLWriterAttributeString(string prefx, string localname,string namespace,string value); 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterNode(XmlReader reader,bool defattr)方法: 
C# 写入XML
C# 写入XML该方法可以从XmlReader读取器中复制节点并把它们写入XmlWriter流中,第一个参数是XmlReader的实例,第二个参数接受一个布尔值,决定是否复制元素中的属性,考虑下面XML片段: 
C# 写入XML
C# 写入XML
<para> 
C# 写入XML
C# 写入XML
<sent> 
C# 写入XML
C# 写入XMLThe
<b>XmlWriter</b>class writes XML content to a Stream. 
C# 写入XML
C# 写入XML
</sent> 
C# 写入XML
C# 写入XML
</para> 
C# 写入XML
C# 写入XML以下代码复制其中的片段,reader代表XmlReader的实例writer代表XmlWriter类的实例: 
C# 写入XML
C# 写入XMLwhile(reader.Read()) 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLif (reader.Name == ”sent” && reader.NodeType == XmlNodeType.Element) 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLwriter.WriterNode(reader,true); 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XML得到以下输出: 
C# 写入XML
C# 写入XML
<sent> 
C# 写入XML
C# 写入XMLThe
<b>XmlWriter</b>class writes XML content to a Stream. 
C# 写入XML
C# 写入XML
</sent> 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XMLWriterComment(string text)方法:用于写出注释 
C# 写入XML
C# 写入XMLWriterString(string text)方法:用于写出文本 
C# 写入XML
C# 写入XMLWriterCData(string text)方法:写出CDATA数据块 
C# 写入XML
C# 写入XMLWriterBase64(byte[] buffer,int index,int count)方法:将指定的二进制字节编码为 Base64 并写出结果文本 
C# 写入XML
C# 写入XMLFlush():将缓冲区中的所有内容刷新到基础流,并同时刷新基础流 
C# 写入XML
C# 写入XMLClose():关闭此流和基础流 
C# 写入XML
C# 写入XML
C# 写入XML
C# 写入XML以上对XmlTextWriter类的一些重要方法做了简单介绍,下面我们就来看一个例程,看看在程序中如何使用这些方法,照样还是先来看下运行效果图: 
C# 写入XML
C# 写入XML
C# 写入XMLExample1按纽将向一个文件写出XML声明和一个元素节点以及节点内的文本,Example2按纽将在Example1的基础上添加属性节点,嵌套元素以及文本,WriteNode按纽使用WriterNode()方法在现有读取器中复制该读取器中的所有元素及属性并写到一个新的XML文档中,Example3按纽将写一份完整的XML文档,Example4按纽在Example3按纽的基础上另外生成一份文档并向该文档中追加CDATA部分,Example5按纽将使用WriterBase64()方法对一幅图片进行编码并将编码后的数据写到XML文档中,Example6按纽将使用Example5按纽中生成的XML读取其中数据并对其中编码数据进行解码最后生成一张图片。 
C# 写入XML
C# 写入XML以下是功能实现代码: 
C# 写入XML
C# 写入XMLnamespace XMLWriting 
C# 写入XML

C# 写入XML以下是在WriteNode按纽中要使用到的XML文件: 
C# 写入XML
C# 写入XML唐诗.xml 
C# 写入XML<?xml version="1.0" encoding="gb2312"?> 
C# 写入XML
C# 写入XML
<唐诗> 
C# 写入XML
C# 写入XML
<五言绝句> 
C# 写入XML
C# 写入XML
<作者 字号="太白">李白</作者> 
C# 写入XML
C# 写入XML
<标题>静夜思</标题> 
C# 写入XML
C# 写入XML
<内容>床前明月光,疑是地上霜。举头望明月,低头思故乡。</内容> 
C# 写入XML
C# 写入XML
</五言绝句> 
C# 写入XML
C# 写入XML
<五言绝句> 
C# 写入XML
C# 写入XML
<作者 字号="太白">李太白</作者> 
C# 写入XML
C# 写入XML
<标题>春晓</标题> 
C# 写入XML
C# 写入XML
<内容>春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。</内容> 
C# 写入XML
C# 写入XML
</五言绝句> 
C# 写入XML
C# 写入XML
<五言绝句> 
C# 写入XML
C# 写入XML
<作者 字号="季凌">王之涣</作者> 
C# 写入XML
C# 写入XML
<标题>登鹤雀楼</标题> 
C# 写入XML
C# 写入XML
<内容>白日依山尽,黄河入海流。欲穷千里目,更上一层楼</内容> 
C# 写入XML
C# 写入XML
</五言绝句> 
C# 写入XML
C# 写入XML
<五言绝句> 
C# 写入XML
C# 写入XML
<作者>李清照</作者> 
C# 写入XML
C# 写入XML
<标题>如梦令</标题> 
C# 写入XML
C# 写入XML
<内容>昨夜风疏雨骤,浓睡不消残酒,试问卷帘人,却道海棠依旧,知否,知否,应是绿肥红瘦。</内容> 
C# 写入XML
C# 写入XML
</五言绝句> 
C# 写入XML
C# 写入XML
</唐诗> 
C# 写入XML

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-01
  • 2022-02-03
  • 2022-01-08
猜你喜欢
  • 2022-12-23
  • 2021-10-23
  • 2022-12-23
  • 2021-07-22
  • 2021-08-17
  • 2021-08-06
  • 2022-12-23
相关资源
相似解决方案