xml檔案讀取和寫入的實現方式小結

2021-06-08 13:15:55 字數 1412 閱讀 7349

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 ...