xml檔案的讀取和寫入主要又兩種,一種是xmldocument,另一種是xmltextwriter/xmltextreader。
1、xmltextwriter/xmltextreader
讀取程式:
string path="myxml.xml";
string str = "";
xmltextreader xtr = new xmltextreader(path);
///read()這個方法的返回值總是為真,直到到達檔案的底部時,返回值才變為假。換句話說, 迴圈在檔案的開始時啟動並且讀入所有的節點, 一次讀入乙個節點, 直到到達檔案的結尾:
try
catch
當使用nodetype屬性時,理解節點怎麼聯絡到xml單元是非常重要的。例如, 看下列 xml元素:
<city>nanjing</city>
xmltextreader 把這個元素看作 3 個節點,順序如下:
1.<city>標籤被讀為型別 xmlnodetype.element 節點,元素的名字「city」可從 xmltextreader 的name屬性中獲得。
2.文字資料「nanjing」被讀為型別為xmlnodetype.text的節點。資料「nanjing 」 可從xmltextreader 的value屬性中取得。
3.</city>標籤被讀為型別為xmlnodetype.endelement 節點。同樣,元素的名稱「city」可從xmltextreader的name屬性中獲得。
如果xmltextreader遇到乙個錯誤, 例如出現違反xml句法的情況,它丟擲乙個system.xml.xmlexception型別的異常。使用這個類的**應該總是被保護 ( 在try……catch塊中)。
寫入程式:
2、xmldocument
寫入程式:
catch
檔案讀取:
///在寫入程式中,xl.selectsinglenode("cae")和xl.attributes["name"].value;這裡的cae和name都只會在nuaa的子節點裡查詢,如果是在子節點中找不到或者是在子節點的子節點,那麼就報錯,也就是它只會在nuaa節點的第一階子節點中查詢。但是foreach這一句表示遍歷nuaa下所有的節點,不只是第一階子節點,因此它會列印出所有節點的innertext。這裡加入xl.selectsinglenode("cae")和xl.attributes["name"].value只是測試用,不加的話他們對應節點的innertext值也會被列印出來的,現在就是相當於列印兩遍就是了。主要是想弄清xl.selectsinglenode("cae")和xl.attributes["name"].value這只有cae和name的父節點是nuaa時才不報錯。
try
xml檔案讀取和寫入的實現方式小結
xml檔案的讀取和寫入主要又兩種,一種是xmldocument,另一種是xmltextwriter xmltextreader。1 xmltextwriter xmltextreader 讀取程式 string path myxml.xml string str xmltextreader xtr ...
xml讀取和寫入
1 需要的命名空間 using system.collections.generic using system.io using system.text using system.xml 3 寫入後的xml檔案樣式 1神州俠侶 5045.55 tiger 以下 為自動建立序號時使用,若你的資料來源本...
XML檔案寫入與讀取
把這個東西做成通用方法 以後直接傳引數就可以了 很方便 以下為寫入 建立乙個新的guest節點並將它新增到根節點下 xmlelement parentnode xdoc.createelement guest xdoc.documentelement.prependchild parentnode ...