XMLTextWriter类
XmlWriter与XmlTextWriter的区别
一开始我认为既然XmlTextWriter可以用,那XmlWriter也一定可以用,当我写完下面的语句时,编译器报错。
 
  XmlWriter doc=new XmlWriter();
XmlWriter doc=new XmlWriter();  XmlWriter doc=new XmlTextWriter();
XmlWriter doc=new XmlTextWriter(); 这样就对了。  
 
常用函数说明 
1. WriteStartDocument() 
用于写Xml头声明,即<?xml version="1.0" encoding="utf-8">,如果使用该函数的重载函数WriteStartDocument(bool standalone),就可以设置声明的standalone属性,该属性表示该xml文档是否与其他文件独立,即是否需要单独声明节点。 
2. WriteEndDocument() 
该函数尽管不会向xml文件写任何文本,但必须在编写结束时调用,以结束写过程,它会清空XmlTextWriter中维护的所有堆栈和临时信息,类似于Dispose()函数。 
3. WriteStartElement() 
创建当前节点的一个子节点,通常使用WriteStartElement(string LocalName,string Value),其中LocalName表示节点名称,value表示节点的InnerText 
如:WriteStartElement("address","Tian Jing Road"); 
生成的xml:<address>Tian Jing Road</address> 
4. WriteEndElement() 
一旦使用过一句WriteStartElement()就必须有对应的WriteEndElement(),当WriteEndElement被执行后,当前指向的节点就会转为父节点,如: 
<shop> 
    <address>Tian Jing Road</address> 
</shop> 
在执行WriteStartElement("address","Tian Jing Road")后,当前指向<address>节点,在WriteEndElement被执行后,当前节点指向<shop>节点 
5. WriteStartAttribute()与WriteEndAttribute() 
与节点创建函数用法相同 
6. WriteAttributeString(string LocalName,string value) 
该函数用于创建属性,与WriteStartAttribute()不同的是它不需要EndAttribute(),直接使用就可以了。 
但要注意它与WriteStartAttribute生成的xml的不同之处,看下面的例子: 
 WriteStartElement("address");
WriteStartElement("address");   WriteStartAttribute("state","California");
WriteStartAttribute("state","California");  WriteEndAttribute();
WriteEndAttribute();  WriteEndElement();
WriteEndElement(); 以上代码生成的xml:<address d1p1:state="" xmlns:d1p1="California" />
 WriteStartElement("address");
WriteStartElement("address");   WriteAttributeString("state","California");
WriteAttributeString("state","California");  WriteEndElement();
WriteEndElement(); 以上代码生成的xml: <address state="California" /> 
也就是说WriteAttributeString生成的是未处理的原始语句,而WriteStartAttribute()生成的是Xml Schema语句 
7. WriteElementString(string LocalName, string Value) 
与WriteAttributeString的用法相同,其中LocalName为节点名称,Value为节点的InnerText。 
8. WriteString()与WriteRaw()的区别 
    WriteString("More >")生成的Xml是More > 
    WriteRaw("More >")生成的xml是More > 
    也就是说WriteString会把敏感字符转换为转义字符,而WriteRaw()则是直接写入,不做任何处理 
9. WriteCData() 
    该函数是用来写用CData包裹的字符串,在字符串中有敏感字符时很有用 
    WriteCData("More >")生成的Xml是<![CDATA [More >]] > 
 常用属性说明 
1.Formatting属性的默认值为Formatting.None 
2.XmlTextReader.Indentation属性,表示缩近字符的字符数,当Formatting属性为Formatting.Indented时,才会生效 
3.XmlTextReader.IndentChar才会生效,IndentChar是缩近字符,一般使用’\t’,当Formatting属性为Formatting.Indented时,才会生效 
4.QuoteChar属性表示封闭字符,默认为双引号 
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号