——此文章摘自《C#高級編程(第
版)》定價
元 特價
元 購買
XmlTextWriter類可以把XML寫入一個流文件或TextWriter對象中與XmlTextReader一樣XmlTextWriter類以只向前未緩存的方式進行寫入XmlTextWriter的可配置性很高可以指定是否縮進文本縮進量在屬性值中使用什麼引號以及是否支持命名空間等信息
下面是一個簡單的示例說明了如何使用XmlTextWriter類這段代碼在XMLWriterSample文件夾中
private void button_Click(object sender SystemEventArgs e)
{
// change to match your path structure
string fileFTEL=\\\\\\booknewxml;
// create the XmlTextWriter
XmlTextWriter tw=new XmlTextWriter(fileNamenull);
// set the formatting to indented
twFormatting=FormattingIndented;
twWriteStartDocument();
// Start creating elements and attributes
twWriteStartElement(book);
twWriteAttributeString(genreMystery);
twWriteAttributeString(publicationdate);
twWriteAttributeString(ISBN);
twWriteElementString(titleThe Case of the Missing Cookie);
twWriteStartElement(author);
twWriteElementString(nameCookie Monster);
twWriteEndElement();
twWriteElementString(price);
twWriteEndElement();
twWriteEndDocument();
//clean up
twFlush();
twClose();
}
這裡編寫一個新的XML文件booknewxml並給一本新書添加數據注意XmlTextWriter會用新文件重寫舊文件本章的後面會把一個新元素或節點插入到現有的文檔中使用FileStream對象作為參數實例化XmlTextWriter對象還可以把一個帶有文件名和路徑的字符串或者一個基於TextWriter的對象作為參數接著設置Indenting屬性之後子節點就會自動從父節點縮進WriteStartDocument()會添加文檔聲明下面開始寫入數據首先是book元素添加genrepublicationdate 和 ISBN屬性然後寫入titleauthor和price元素注意author元素有一個子元素名
單擊按鈕生成booknewxml文件
<?xml version=?>
<book genre=Mystery publicationdate= ISBN=>
<title>The Case of the Missing Cookie</title>
<author>
<name>Cookie Monster</name>
</author>
<price></price>
</book>
在開始和結束寫入元素和屬性時要注意控制元素的嵌套在給authors元素添加name子元素時就可以看到這種嵌套注意WriteStartElement()和 WriteEndElement()方法調用是如何安排的以及它們是如何在輸出文件中生成嵌套的元素的
除了WriteElementString ()和 WriteAttributeString()方法外還有其他幾個專用的寫入方法WriteCData()可以輸出一個Cdata部分(<!CDATA[…])>)把要寫入的文本作為一個參數WriteComment()以正確的XML格式寫入注釋WriteChars()寫入字符緩沖區的內容其工作方式類似於前面的ReadChars()它們都使用相同類型的參數WriteChar()需要一個緩沖區(一個字符數組)寫入的起始位置(一個整數)和要寫入的字符個數(一個整數)
使用基於XmlReader 和 XmlWriter的類讀寫XML是非常靈活的使用起來也很簡單下面介紹如何使用SystemXml命名空間中XmlDocument 和 XmlNode類執行DOM
From:http://tw.wingwit.com/Article/program/net/201311/15255.html