成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳談.NET Framework處理XML操作技巧

開發(fā) 后端
.NET Framework處理XML這一操作步驟對于初學(xué)者來說可能是比較難掌握的。不要緊,通過對這篇文章的解讀,大家應(yīng)該可以輕松掌握相關(guān)應(yīng)用技巧。

.NET Framework應(yīng)用范圍還是比較廣泛的。許多開發(fā)人員都會使用它來創(chuàng)造出一個適合開發(fā)的環(huán)境幫助我們提高開發(fā)效率。在.NET Framework出現(xiàn)之前,習(xí)慣使用MSXML服務(wù)——一個基于COM的類庫——寫Windows的XML的驅(qū)動程序。不像.NET Framework中的類,MSXML類庫的部分代碼比API更深,它完全的嵌在操作系統(tǒng)的底層。#t#

MSXML的確能夠與你的應(yīng)用程序通信,但是它不能真正 的與外部環(huán)境結(jié)合。 MSXML類庫能在win32中被導(dǎo)入,也能在CLR中運用,但它只能作為一個外部服務(wù)器組件使用。但是基于.NET Framework的應(yīng)用程序能直接的進行.NET Framework處理XML的其它命名空間整合使用,并且寫出來的代碼易于閱讀。

作為一個獨立的組件,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類)。

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

分析器的主要功能就是檢查XML文件是否有結(jié)構(gòu)上的錯誤,剝離XML文件中的標記,讀出正確的內(nèi)容,以交給下一步的應(yīng)用程序處理。XML是一種用來結(jié)構(gòu)化 文件信息的標記語言,XML規(guī)范中對于如何標記文件的結(jié)構(gòu)性有一個詳細的法則,解析器就是根據(jù)這些法則寫出來的軟件(多用Java寫成)。同HTML一 樣,在瀏覽器中,必須有HTML的分析器,這樣瀏覽器才能夠“讀懂”各種用HTML標記所組成的網(wǎng)頁,將它們顯示在我們面前。如果有瀏覽器的HTML解析 器讀不懂的標記,將會返回給我們錯誤信息。

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

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

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

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

閱讀器是基于.NET Framework流模式工作的,它的工作方式類似于數(shù)據(jù)庫的游標。有趣的是,實現(xiàn)類似游標分析模式的類提供對.NET Framework中的XMLDOM分析器的底層支持。XmlReader、XmlWriter兩個抽象類是所有.NET Framework中XML類的基礎(chǔ)類,包括XMLDOM類、ADO.NET驅(qū)動類及配置類。所以在.NET Framework中你有兩種可選的方法去處理XML數(shù)據(jù)。用XmlReader和XmlWriter類直接處理XML數(shù)據(jù),或者用XMLDOM模式處理。

XML閱讀器支持一個編程接口,接口用于連接XML文檔,“推出”你要的數(shù)據(jù)。如果你更深入去了解閱讀器,你會發(fā)現(xiàn)閱讀器工作原理類似于我們的桌面 應(yīng)用程序從數(shù)據(jù)庫中取出數(shù)據(jù)的原理。數(shù)據(jù)庫服務(wù)返回一個游標對象,它包含所有查詢結(jié)果集,并返回指向目標數(shù)據(jù)集的開始地址的引用。XML閱讀器的客戶端收 到一個指向閱讀器實例的引用。該實例提取底層的數(shù)據(jù)流并把取出的數(shù)據(jù)呈現(xiàn)為一棵XML樹。閱讀器類提供只讀、向前的游標,你可以用閱讀器類提供的方法滾動 游標遍歷結(jié)果集中的每一條數(shù)據(jù)。 從閱讀器中看XML文檔不是一個標簽文本文件,而是一個序列化的節(jié)點集合。它是.NET Framework中的一種特殊的游標模式;在.NET Framework中,你找不到其它的任何一個類似的API函數(shù)。

閱讀器和XMLDOM分析器有幾點不同的地方。XML閱讀器是只進的,它沒有父、子、祖宗、兄弟節(jié)點的概念,而且是只讀的。在.NET Framework處理XML中,讀寫XML文檔是分為兩種完全不同的功能,分別由XmlReader和XmlWriter類來完成。要編輯XML文檔,你可以用 XMLDOM分析器。

.net framework處理xml主要包System.Xml命名空間當中,而xml序列化則在System.Xml.Serialization 命名空間中,***簡要說一下有關(guān)DTD的概念。

DTD(Document Type Definition,文檔類型定義)它是一種規(guī)范,可以使商業(yè)組織間進行無縫的數(shù)據(jù)交換,打個比方,如果兩個同行業(yè)的公司A和B要用XML文件相互交換數(shù)據(jù),A公司用〈價格〉標記來表示他們產(chǎn)品的價格信息,而B公司可能用〈售價〉來表示價格信息。如果一 個XML應(yīng)用程序來讀取他們各自的XML文件中的信息時,如果它只知道〈價格〉標記里表示的是價格信息,那么B公司的價格信息就讀不出來,必將產(chǎn)生錯誤。 顯然,對于想利用XML文件來交換信息的實體來說,他們之間必須有一個約定——即編寫XML文件可以用哪些標記,母元素中能夠包括哪些子元素,各個元素出 現(xiàn)的順序,元素中的屬性怎樣定義等。這么人幫我們就可以輕松地依據(jù)這個DTD 編寫一個應(yīng)用程序,去網(wǎng)上將我們感興趣的東西自動抓回來。 這就是所謂的DTD,A和B公司在交換數(shù)據(jù)時都必須遵循一種規(guī)范。

現(xiàn)在.NET Framework處理XML的方式中已經(jīng)有了好幾個定義好的DTD,如MathML、SMIL等。MathML‎(Mathematical Markup Language‎)即數(shù)學(xué)置標語言是一種基于XML的標準,用來在互聯(lián)網(wǎng)上書寫數(shù)學(xué)符號和公式的置標語言。它是由W3C的數(shù)學(xué)工作組提出的。由于數(shù)學(xué)符號和公式的結(jié)構(gòu)復(fù)雜且符號與符號之間存在多種邏輯關(guān)系,MathML的格式十分繁瑣。這個東東太復(fù)雜了,我懶得去研究它,隨它吧。SMIL好像念作smile,是用來操縱多媒體片斷(對多媒體片斷的有機的、智能的組合)。 看來這東西真的不錯!SMIL語言是一套已經(jīng)規(guī)定好的而且非常簡單的標記。它用來規(guī)定多媒體片斷(這里多媒體的包括的范圍有:聲音文件、視頻文件、動畫、圖片、文字等)在什么時候、在什么地方、以什么樣的方式播放。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-01-06 17:02:28

.Net Framew

2009-12-24 14:45:32

ADO.NET程序

2010-01-05 13:45:15

.NET Framew

2010-01-05 17:30:23

.NET Framew

2010-01-06 18:33:56

.Net Framew

2010-01-06 17:12:26

.Net Framew

2010-01-05 10:29:43

.NET Framew

2009-07-20 16:04:37

ASP.NET fra

2009-08-25 16:49:28

.NET Excel

2010-01-06 10:36:00

.NET Framew

2010-01-05 15:35:21

.NET Framew

2010-01-05 15:00:30

.NET Framew

2010-01-06 18:54:41

脫離.Net Fram

2009-08-13 10:35:55

C#.NET操作XML

2009-10-23 17:03:18

VB.NET事件編程

2009-11-03 15:13:13

ADO .NET存儲過

2010-01-05 15:43:13

.NET Framew

2010-01-06 15:43:22

.Net Framew

2010-03-05 14:50:08

Python調(diào)用.ne

2011-04-13 09:28:59

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91中文字幕 | 亚洲av毛片成人精品 | 午夜影院在线观看 | 久久国产美女视频 | 午夜婷婷激情 | 91社区在线高清 | h视频在线观看免费 | 黄色大片免费网站 | 亚洲三级在线观看 | 丝袜 亚洲 另类 欧美 综合 | 亚洲va欧美va人人爽午夜 | 91视频88av| 91久久视频 | www九色| 亚洲国产精品精华素 | 欧美视频中文字幕 | 日日夜夜视频 | 7777在线视频免费播放 | 久久精品国产一区老色匹 | 在线观看免费av网站 | 久久99精品久久久久久国产越南 | 免费av观看 | 99免费精品视频 | 国内精品久久精品 | 国产免费一区 | 精品无码久久久久久国产 | a级网站| 欧美二区乱c黑人 | 国产精品一区二区不卡 | 成人在线观看免费观看 | 日本亚洲一区 | 麻豆a级片| 久久综合久色欧美综合狠狠 | 精品久久香蕉国产线看观看亚洲 | 福利一区在线观看 | 999久久久 | 精品久久一区二区三区 | 欧美三区在线观看 | 91视频在线观看 | 81精品国产乱码久久久久久 | 亚洲精品福利视频 |