( 聲明:本系列只想給大家介紹.net框架,并不是語法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查 )
上面一篇,對system.Reflection做了初步的研究,本來這篇開始要講解Winform應(yīng)用程序的流程框架,可是突然想到還有XML這個(gè)東西沒有講解,只好這篇補(bǔ)上了,下篇再講應(yīng)用程序吧,失誤,請?jiān)?
XML是一種標(biāo)記語言,就應(yīng)該有一種工具按一定的語法來分析和理解存儲(chǔ)在文檔中信息。這個(gè)工具就是XML分析器---一個(gè)組件用于讀標(biāo)記文本并返回指定平臺(tái)的對象。.NET 框架支持兩種不同的分析模式:XMLDOM分析器和XML閱寫器。我們來看圖
1.讀寫器:
它的工作方式類似于數(shù)據(jù)庫的游標(biāo)。XML閱讀器的客戶端收到一個(gè)指向閱讀器實(shí)例的引用。該實(shí)例提取底層的數(shù)據(jù)流并把取出的數(shù)據(jù)呈現(xiàn)為一棵XML樹。閱讀器類提供只讀、向前的游標(biāo),你可以用閱讀器類提供的方法滾動(dòng)游標(biāo)遍歷結(jié)果集中的每一條數(shù)據(jù)。
XMLReader:是一個(gè)提供對 XML文檔 數(shù)據(jù)的非緩存、只進(jìn)只讀訪問的抽象基類。有二個(gè)子類繼承并擴(kuò)展了他.
XMLTextReader:繼承自XMLReader,提供對 XML文檔 數(shù)據(jù)進(jìn)行快速、非緩存、只進(jìn)訪問的讀取器。
XMLNodeReader:繼承自XMLReader,提供對XML文檔的Node 中的 XML 數(shù)據(jù)進(jìn)行快速、非緩存的只進(jìn)訪問的讀取器。
XMLWrite:一個(gè)編寫器抽象基類,該編寫器提供一種快速、非緩存和只進(jìn)的方式來生成包含 XML 數(shù)據(jù)的流或文件。
2.DOM分析器:
XMLNode: XML 文檔中的單個(gè)節(jié)點(diǎn)。是 DOM 實(shí)現(xiàn)中的基類。
XMLAttribute:繼承自XMLNode,表示XML文檔中節(jié)點(diǎn)的屬性。
XMLDocument:繼承自XMLNode,表示XML文檔。
XMLLinkedNode :獲取緊靠該節(jié)點(diǎn)(之前或之后)的節(jié)點(diǎn)。
XML也是一種數(shù)據(jù)保存的格式,他就像個(gè)數(shù)據(jù)庫表。那么他也用到了我們在System.Data一篇中提到的數(shù)據(jù)源架構(gòu)模式,我們來回憶一下3種屬于數(shù)據(jù)層的架構(gòu)模式
1.表數(shù)據(jù)入口:一個(gè)表實(shí)例處理數(shù)據(jù)庫表中的所有行.(Adapter中承載了一張表,他就代表數(shù)據(jù)庫,可以對數(shù)據(jù)進(jìn)行填刪改查等操作)
2.行數(shù)據(jù)入口:訪問表中單條記錄地對象,一行一個(gè)實(shí)例.(DataReader,這里的行數(shù)據(jù)只能讀取,而不能修改.每一次Reader.Next(),就會(huì)返回一個(gè)數(shù)據(jù)行.)
3.?dāng)?shù)據(jù)影射器(ORM):.NET中沒有這種模式,ORM本身就很復(fù)雜,這里就不講解了.
這里的閱讀器就相當(dāng)于System.Data中的DataReader,他是一條一條的讀取數(shù)據(jù),每條數(shù)據(jù)都是一個(gè)Reader中的實(shí)例,所以他屬于行數(shù)據(jù)入口。分析器就好比Adapter,將XML文檔的所有數(shù)據(jù)一次裝載了進(jìn)來,一個(gè)DOM就是一個(gè)表(文檔)的實(shí)例,那么他屬于行數(shù)據(jù)入口。
我們來看下XML,在.net中如何操作。
使用讀寫器



















使用分析器:





















OK,對XML的操作我們就介紹到這里。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
