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

2021-12-29 20:36:23 字數 2040 閱讀 6732

xml檔案的讀取和寫入主要又兩種,一種是xmldocument,另一種是xmltextwriter/xmltextreader。

1、xmltextwriter/xmltextreader

讀取程式:

string path="myxml.xml";

string str = "";

xmltextreader xtr = new xmltextreader(path);

///read()這個方法的返回值總是為真,直到到達檔案的底部時,返回值才變為假。換句話說, 迴圈在檔案的開始時啟動並且讀入所有的節點, 一次讀入乙個節點, 直到到達檔案的結尾:

try}

tb.appendtext(str);

xtr.close();

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塊中)。

寫入程式:

xmltextwriter xtw = new xmltextwriter(path,asciiencoding.ascii);

xtw.formatting = formatting.indented;

xtw.writestartdocument();

xtw.writecomment("it's happy's first xml file!");

xtw.writestartelement("grandfather");

xtw.writestartelement("father");

xtw.writename("happy");

xtw.writevalue("happy123");

xtw.writeelementstring("me", "nuaa");

xtw.writeendelement();

xtw.writeendelement();

xtw.writeenddocument();

xtw.flush();

xtw.close();

messagebox.show("xml檔案儲存成功!");

2、xmldocument

寫入程式:

trycatch

檔案讀取:

///在寫入程式中,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時才不報錯。

trytb.appendtext(st);

}catch

作者:happy_rita

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