——此文章摘自《C#高級編程(第
版)》定價
元 特價
元 購買
最後把newBook元素添加到docDocumentElement節點上它與其他book元素同級現在用新元素更新現有的文檔
最後把新XML文檔寫到磁盤上在這個示例中創建一個新XmlTextWriter把它傳送給WriteContentTo方法WriteContentTo 和 WriteTo方法都帶一個XmlTextWriter參數WriteContentTo把當前節點及其所有的子節點都保存到XmlTextWriter而WriteTo只保存當前節點因為doc是一個基於XmlDocument的對象它表示整個文檔所以應保存它我們還使用了Save方法它總是保存整個文檔Save有個重載方法其參數分別是一個包含文件名和路徑的字符串基於Stream的對象基於TextWriter的對象和基於XmlWriter的對象
我們還在XmlTextWriter上調用了Close()方法刷新內部緩存並關閉文件
在運行這個示例時會得到如圖所示的屏幕圖注意列表框底部的新項
圖
如果要從頭開始創建一個文檔可以使用XmlTextWriter(見本章前面的介紹)還可以使用XmlDocument使用哪個比較好?如果要寫入XML流的數據已經准備好最好選擇XmlTextWriter類但是如果需要一次建立XML文檔的一小部分在不同的地方插入節點用XmlDocument創建文檔就比較好為此可以把下面的代碼
docLoad(\\\\\\booksxml);
改為(這些代碼在示例DOMSample中)
//create the declaration section
XmlDeclaration newDec = docCreateXmlDeclaration(nullnull);
docAppendChild(newDec);
//create the new root element
XmlElement newRoot = docCreateElement(newBookstore);
docAppendChild(newRoot);
首先創建一個新XmlDeclaration其參數是版本(目前是)編碼(edcoding)和standalone標志如果沒有使用null編碼參數應設置為一個字符串該字符串應是SystemTextEncoding類的一部分null默認為UTFstandalone標志可以是yesno或null但如果是null就不使用該屬性也不包含在文檔中
要創建的下一個元素是DocumentElement在本例中它稱為newBookstore這樣區別就比較明顯代碼的其余部分與前面的示例相同執行的方式也相同下面是從代碼中生成的booksEditxml
<?xml version=?>
<newBookstore>
<book genre=Mystery publicationdate= ISBN=>
<title>The Case of the Missing Cookie</title>
<author>
<name>C Monster</name>
</author>
<price></price>
</book>
</newBookstore>
本章沒有介紹XmlDocument類的每個細節也沒有介紹在NET中對創建DOM模型有幫助的其他類但是我們說明了NET中的DOM有多麼靈活和強大在希望隨機訪問文檔時可以使用XmlDocument類在希望有一個流類型的模型時可以使用基於XmlReader的類基於XmlDocument的XmlNode的靈活性要求的內存比較多讀取文檔的性能也沒有使用XmlReader好所以應仔細考慮在這種情況下最好使用什麼方法
[] [] []
From:http://tw.wingwit.com/Article/program/net/201311/14749.html