使用 XmlTextWriter 建立 XML 檔

常見的建立 XML 檔案的方式是使用XmlTextWriter類別。
XmlTextWriter 繼承自 XmlWriter,而 XmlWriter 是抽象類別。

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" ); 
WriteStartAttribute( "state" , "California" );
WriteEndAttribute();
WriteEndElement();

以上程式碼生成的xml:

< address d1p1:state = "" xmlns:d1p1 = "California" />
WriteStartElement( "address" ); 
WriteAttributeString( "state" , "California" );
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 &gt
WriteRaw(“More >”)生成的xml是More >
也就是說WriteString會把敏感字元轉換為轉義字元,而WriteRaw()則是直接寫入,不做任何處理

9. WriteCData()
該函數是用來寫用CData包裹的字串,在字串中有敏感字元時很有用
WriteCData(“More >”)生成的Xml是

<![CDATA [More >]] >

10. WriteFullEndElement()
該函數用來寫完整的結束標誌,如

< address ></ address >
writer.WriteStartElement( "address" , null );
writer.WriteFullEndElement();

XmlTextWriter 常用屬性說明如下:
1.Formatting 屬性的預設值為 Formatting.None
2.XmlTextWriter.Indentation屬性,表示縮近字元的字元數,當Formatting屬性為Formatting.Indented時,才會生效
3.XmlTextWriter.IndentChar才會生效,IndentChar是縮近字元,一般使用’\t’,當Formatting屬性為Formatting.Indented時,才會生效
4.QuoteChar屬性表示封閉字元,默認為雙引號

Reference:
http://tung.tsu.edu.tw/lecture/vc_net/chp18_xml_2005.doc

 

你可能感兴趣的:(xml,C#)