這篇文章主要為大家展示了“如何讀寫(xiě)XML文件”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何讀寫(xiě)XML文件”這篇文章吧。
柯城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
這里我們先介紹操作XML文件的兩個(gè)對(duì)象:XmlTextReader和XmlTextWriter
打開(kāi)和讀取Xml文件使用到的對(duì)象就是XmlTextReader對(duì)象。下面的例子打開(kāi)了與程序在同一路徑下的一個(gè)例子文件sample.xml
XmlTextReader reader = new XmlTextReader("sample.xml");
然后我們可以通過(guò)其Read方法實(shí)現(xiàn)自動(dòng)便利XML文件。例:
while(reader.Read()) { //在這里填寫(xiě)對(duì)于XML的操作代碼 }
下面我們看一個(gè)復(fù)雜一些的例子。
while(reader.Read()) 2{ 3 switch(reader.NodeType) 4 { 5 case XmlNodeType.Element: //當(dāng)前節(jié)點(diǎn)是一個(gè)元素 6 Console.Write("<" + reader.Name); 7 while(reader.MoveToNextAttribute()) //按照順序讀取下一個(gè)屬性 8 Console.Write(" " + reader.Name + "='" + reader.Value + "'"); 9 Console.Write(">"); 10 break; 11 case XmlNodeType.DocumentType: //XML文件的類型聲明 12 Console.WriteLine(reader.NodeType + "<" + reader.Name + ">" + reader.Value); 13 break; 14 …… 15 } 16 }
從第3行開(kāi)始我們就根據(jù)NodeType屬性去判斷節(jié)點(diǎn)的類型,根據(jù)節(jié)點(diǎn)的不同類型進(jìn)行不同的處理。
下表列出了一些常用的節(jié)點(diǎn)類型。
XmlTextReader的NodeType的取值 | |
類型 | 說(shuō)明 |
All | 所有節(jié)點(diǎn) |
Attribute | 一個(gè)屬性 |
CDATA | 轉(zhuǎn)義那些會(huì)被看作標(biāo)記語(yǔ)言(如HTML)的文本 |
Comment | 使用分隔的注釋 |
Document | XML數(shù)據(jù)樹(shù)的根節(jié)點(diǎn) |
DocumentType | 文檔的類型聲明,即標(biāo)記 |
Element | 一個(gè)元素,通常是XML文件中的實(shí)際數(shù)據(jù) |
EndTag | 元素的結(jié)束位置 |
None | 不是節(jié)點(diǎn) |
Text | 返回元素的文本內(nèi)容 |
XMLDeclaration | XML聲明節(jié)點(diǎn),例如 |
在進(jìn)行寫(xiě)入XML文件時(shí)我們使用的XmlTextWriter類,它是XmlWriter的子類,速度快且不使用緩存,但是同XmlTextReader一樣,在寫(xiě)入XML文件時(shí)只能向前。
我們假定要寫(xiě)入的XML文件在C盤(pán)根目錄下:
XmlTextWriter writer = new XmlTextWriter("C:\\sample2.xml",null);
在這里如果不想把數(shù)據(jù)寫(xiě)入文件,而只是想在命令窗口顯示,則可以把“Console.Out”作為參數(shù)傳遞給構(gòu)造器,此時(shí)應(yīng)把上述語(yǔ)句改為:
XmlTextWriter writer = new XmlTextWriter(Console.Out);
下面我們介紹一下寫(xiě)入XML文件數(shù)據(jù)的一些常用方法:
XmlTextWriter的常用方法 | ||
方法 | 說(shuō)明 | 用法 |
WriteStartDocument | 寫(xiě)XML聲明部分,即“” | writer.WriteStartDocument(); |
WriteEndDocument | 使沒(méi)有閉合元素閉合 | writer.WriteEndDocument(); |
WriteDocType | 寫(xiě)DOCTYPE聲明 | writer.WriteDocType("sample2",null,null,""); |
WriteStartElement | 寫(xiě)元素的開(kāi)始標(biāo)志 | writer.WriteStartElement("sample2"); |
WriteEndElement | 寫(xiě)元素的結(jié)束標(biāo)志 | writer.WriteEndElement(); |
WriteString | 寫(xiě)入字符串 | writer.WriteString("Pride And Prejudice"); |
WriteCData | 寫(xiě)CDATA塊,即寫(xiě)入的文字在間 | writer.WriteCData("Price 15% off!!"); |
WriteRaw | 手工寫(xiě)入一行,不作任何處理 | writer.WriteRaw("this & that"); |
WriteEntityRef | 寫(xiě)入實(shí)體引用,即前面加“&”后面加“;” | writer.WriteEntityRef("h"); |
WriteProcessingInstruction | 寫(xiě)入處理指令,即前面加“”后面加“?>” | writer.WriteProcessingInstruction("xml-stylesheet",PItext); |
WriteComment | 寫(xiě)入注釋,自動(dòng)加入注釋標(biāo)志“ |