六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在.NET Framework中簡單處理XML數(shù)據(jù)(1-1)

[摘要]  在.NET Framework中,XmlTextReader和XmlTextWriter類提供了對xml數(shù)據(jù)的讀和寫操作。在本文中,作者講述了XML閱讀器(Reader)的體系結(jié)構(gòu)及它們怎樣與XMLDOM 和SAX 解釋器結(jié)合。作者也演示了怎么樣運(yùn)用閱讀器分析和驗證XML文檔,怎么樣創(chuàng)建格式良...
  在.NET Framework中,XmlTextReader和XmlTextWriter類提供了對xml數(shù)據(jù)的讀和寫操作。在本文中,作者講述了XML閱讀器(Reader)的體系結(jié)構(gòu)及它們怎樣與XMLDOM 和SAX 解釋器結(jié)合。作者也演示了怎么樣運(yùn)用閱讀器分析和驗證XML文檔,怎么樣創(chuàng)建格式良好的XML文檔,以及怎么樣用函數(shù)讀/寫基于Base64和BinHex編碼的大型的XML文檔。最后,作者講了怎么樣實現(xiàn)一個基于流的讀/寫分析器,它把讀寫器都封裝在一個單獨(dú)的類里。

  大概三年前,我參加了一個軟件研討會,主題是“沒有XML,就沒有編程的未來”。XML確實也在一步一步的發(fā)展,它已經(jīng)嵌入到. NET Framework中了。在本文中,我將講解. NET Framework中用于處理XML文檔的API的角色和它的內(nèi)部特性,然后我將演示一些常用的功能。

  從MSXML到.net的XML

  在. NET Framework出現(xiàn)之前,你習(xí)慣使用MSXML服務(wù)----一個基于COM的類庫---寫windows的XML的驅(qū)動程序。不像. NET Framework中的類,MSXML類庫的部分代碼比API更深,它完全的嵌在操作系統(tǒng)的底層。MSXML的確能夠與你的應(yīng)用程序通信,但是它不能真正的與外部環(huán)境結(jié)合。

  MSXML類庫能在win32中被導(dǎo)入,也能在CLR中運(yùn)用,但它只能作為一個外部服務(wù)器組件使用。但是基于.NET Framework的應(yīng)用程序能直接的用XML類與.NET Framework 的其它命名空間整合使用,并且寫出來的代碼易于閱讀。

  作為一個獨(dú)立的組件,MSXML分析器提供了一些高級的特性如異步分析。這個特性在.NET Framework中的XML類及.NET Framework的其它類都沒有提供,但是,NET Framework中的XML類與其它的類整合可以很輕易的獲得相同的功能,在這個基礎(chǔ)上你可以增加更多的功能。

  .NET Framework中的XML類提供了基本的分析、查詢、轉(zhuǎn)換XML數(shù)據(jù)的功能。在.NET Framework中,你可以找到支持Xpath查詢和XSLT轉(zhuǎn)換的類,及讀/寫XML文檔的類。另外,.NET Framework也包含了其它處理XML的類,例如對象的序列化(XmlSerializer和the SoapFormatter類),應(yīng)用程序配置(AppSettingsReader類),數(shù)據(jù)存儲(DataSet類)。在本文中,我只討論實現(xiàn)基本XML I/O操作的類。

  XML分析模式

  既然XML是一種標(biāo)記語言,就應(yīng)該有一種工具按一定的語法來分析和理解存儲在文檔中信息。這個工具就是XML分析器---一個組件用于讀標(biāo)記文本并返回指定平臺的對象。

  所有的XML分析器,不管它屬于哪個操作平臺,不外乎都分以下的兩類:基于樹或者基于事件的處理器。這兩類通常都是用XMLDOM(the Microsoft XML Document Object Model)和SAX(Simple API for XML)來實現(xiàn)。XMLDOM分析器是一個普通的基于樹的API---它把XML文檔當(dāng)成一個內(nèi)存結(jié)構(gòu)樹呈現(xiàn)。SAX分析器是基于事件的API----它處理每個在XML數(shù)據(jù)流中的元素(它把XML數(shù)據(jù)放進(jìn)流中再進(jìn)行處理)。通常,DOM能被一個SAX流載入并執(zhí)行,因此,這兩類的處理不是相互排斥的。

  總的來說,SAX分析器與XMLDOM分析器正好相反,它們的分析模式存在著極大的差別。XMLDOM被很好的定義在它的functionalition集合里面,你不能擴(kuò)展它。當(dāng)它在處理一個大型的文檔時,它要占用很大內(nèi)存空間來處理functionalition這個巨大的集合。

  SAX分析器利用客戶端應(yīng)用程序通過現(xiàn)存的指定平臺的對象的實例去處理分析事件。SAX分析器控制整個處理過程,把數(shù)據(jù)“推出”到處理程序,該處理程序依次接受或拒絕處理數(shù)據(jù)。這種模式的優(yōu)點(diǎn)是只需很少的內(nèi)存空間。

  .NET Framework完全支持XMLDOM模式,但它不支持SAX模式。為什么呢?因為.NET Framework支持兩種不同的分析模式:XMLDOM分析器和XML閱讀器。它顯然不支持SAX分析器,但這并不意味它沒有提供類似SAX分析器的功能。通過XML閱讀器SAX的所有的功能都能很容易的實現(xiàn)及更有效的運(yùn)用。不像SAX分析器,.NET Framework的閱讀器整個都運(yùn)作在客戶端應(yīng)用程序下面。這樣,應(yīng)用程序本身就可以只把真正需要的數(shù)據(jù)“推出”,然后從XML數(shù)據(jù)流中跳出來。而SAX分析模式要處理所有的對應(yīng)用程序有用和無用的信息。

  閱讀器是基于.NET Framework流模式工作的,它的工作方式類似于數(shù)據(jù)庫的游標(biāo)。有趣的是,實現(xiàn)類似游標(biāo)分析模式的類提供對.NET Framework中的XMLDOM分析器的底層支持。XmlReader、XmlWriter兩個抽象類是所有.NET Framework中XML類的基礎(chǔ)類,包括XMLDOM類、ADO.NET驅(qū)動類及配置類。所以在.NET Framework中你有兩種可選的方法去處理XML數(shù)據(jù)。用XmlReader和XmlWriter類直接處理XML數(shù)據(jù),或者用XMLDOM模式處理。更多的關(guān)于在.NET Framework中讀文檔的介紹可以參見MSDN 2002 年八月刊的Cutting Edge欄目文章。



主站蜘蛛池模板: 亚洲第一中文 | 亚洲国产精品久久精品成人 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看播放 | 青草视频在线观看完整版 | 色尼玛图 | 色欧美片视频在线观看 | 日日干狠狠| 日本五级床片全部免费午夜 | 五月天激情开心网 | 亚洲精品乱码久久久久久麻豆 | 四虎免费视频 | 色一级| 日韩欧美一区二区三区久久 | 一二三四免费观看在线影视大全 | 亚洲成人在线网站 | 日韩理论片在线观看电视 | 午夜999| 视频麻豆 | 亚洲免费色 | 亚欧色| 午夜国产视频 | 窝窝午夜色视频国产精品东北 | 亚洲第一在线播放 | 午夜激情在线观看 | 色狠狠色狠狠综合天天 | 青青草国产免费国产 | 热re久久精品国产99热 | 青青草免费观看视频 | 色网站网址 | 日韩影视在线观看 | 日本国产成人精品视频 | 午夜视频在线观看182tv | 天天狠狠色综合图片区 | 桃花岛在线播放免费观看 | 天天搞天天色 | 一二三四手机在线观看视频播放 | 欧美午夜精品 | 日韩日韩日韩手机看片自拍 | 欧美亚洲另类久久综合 | 亚洲人成片在线观看 | 最近手机中文字幕1页 |