在.NET Framework中輕鬆處理XML資料(1-1)

來源:互聯網
上載者:User
??在.NET Framework中,XmlTextReader和XmlTextWriter類供給了對xml資料的讀和寫把持。在本文中,作者講述了XML瀏覽器(Reader)的系統結構及它們怎樣與XMLDOM 和SAX 說明器聯合。作者也示範了怎麼樣應用瀏覽器分析和驗證XML文檔,怎麼樣創立格局良好的XML文檔,以及怎麼樣用函數讀/寫基於Base64和BinHex編碼的大型的XML文檔。最後,作者講了怎麼樣實現一個基於流的讀/寫分析器,它把讀寫器都封裝在一個單獨的類裡。

??大概三年前,我參加了一個軟體研究會,主題是“沒有XML,就沒有編程的未來”。XML確實也在一步一步的發展,它已經嵌進到. NET Framework中了。在本文中,我將講解. NET Framework中用於處理XML文檔的API的角色和它的內部特徵,然後我將示範一些常用的功效。

??從MSXML到.net的XML

??在. NET Framework呈現之前,你習慣應用MSXML服務----一個基於COM的類庫---寫windows的XML的驅動程式。不像. NET Framework中的類,MSXML類庫的部分代碼比API更深,它完整的嵌在把持系統的底層。MSXML的確能夠與你的利用程式通訊,但是它不能真正的與外部環境聯合。

??MSXML類庫能在win32中被導進,也能在CLR中應用,但它只能作為一個外部伺服器組件應用。但是基於.NET Framework的利用程式能直接的用XML類與.NET Framework 的其它命名空間整合應用,並且寫出來的代碼易於瀏覽。

??作為一個獨立的組件,MSXML分析器供給了一些進階的特徵如非同步分析。這個特徵在.NET Framework中的XML類及.NET Framework的其它類都沒有供給,但是,NET Framework中的XML類與其它的類整合可以很輕易的獲得雷同的功效,在這個基礎上你可以增加更多的功效。

??.NET Framework中的XML類供給了基礎的分析、查詢、轉換XML資料的功效。在.NET Framework中,你可以找到支撐Xpath查詢和XSLT轉換的類,及讀/寫XML文檔的類。另外,.NET Framework也包含了其它處理XML的類,例如對象的序列化(XmlSerializer和the SoapFormatter類),利用程式配置(AppSettingsReader類),資料存放區(DataSet類)。在本文中,我只討論實現基礎XML I/O把持的類。

??XML分析模式

??既然XML是一種標記語言,就應當有一種工具按必定的文法來分析和懂得儲存在文檔中資訊。這個工具就是XML分析器---一個組件用於讀標記文本並返回指定平台的對象。

??所有的XML分析器,不管它屬於哪個把持平台,不過乎都分以下的兩類:基於樹或者基於事件的處理器。這兩類通常都是用XMLDOM(the Microsoft XML Document Object Model)和SAX(Simple API for XML)來實現。XMLDOM分析器是一個普通的基於樹的API---它把XML文檔當成一個記憶體結構樹浮現。SAX分析器是基於事件的API----它處理每個在XML資料流中的元素(它把XML資料放進流中再進行處理)。通常,DOM能被一個SAX流載進並履行,因此,這兩類的處理不是相互排擠的。

??總的來說,SAX分析器與XMLDOM分析器正好相反,它們的分析模式存在著極大的差別。XMLDOM被很好的定義在它的functionalition聚集裡面,你不能擴大它。當它在處理一個大型的文檔時,它要佔用很大記憶體空間來處理functionalition這個宏大的聚集。

??SAX分析器利用用戶端利用程式通過現存的指定平台的對象的執行個體往處理分析事件。SAX分析器把持全部處理過程,把資料“推出”到處理常式,該處理常式依次接收或拒盡處理資料。這種模式的長處是只需很少的記憶體空間。

??.NET Framework完整支撐XMLDOM模式,但它不支撐SAX模式。為什麼呢?由於.NET Framework支撐兩種不同的分析模式:XMLDOM分析器和XML瀏覽器。它顯然不支撐SAX分析器,但這並不意味它沒有供給類似SAX分析器的功效。通過XML瀏覽器SAX的所有的功效都能很輕易的實現及更有效應用。不像SAX分析器,.NET Framework的瀏覽器全部都運作在用戶端利用程式下面。這樣,利用程式本身就可以只把真正需要的資料“推出”,然後從XML資料流中跳出來。而SAX分析模式要處理所有的對利用程式有用和無用的資訊。

??瀏覽器是基於.NET Framework流模式工作的,它的工作方法類似於資料庫的遊標。有趣的是,實作類別似遊標分析模式的類供給對.NET Framework中的XMLDOM分析器的底層支撐。XmlReader、XmlWriter兩個抽象類別是所有.NET Framework中XML類的基礎類,包含XMLDOM類、ADO.NET驅動類及配置類。所以在.NET Framework中你有兩種可選的方法往處理XML資料。用XmlReader和XmlWriter類直接處理XML資料,或者用XMLDOM模式處理。更多的關於在.NET Framework中讀文檔的先容可以參見MSDN 2002 年八月刊的Cutting Edge欄目文章。


以上就是在.NET Framework中輕鬆處理XML資料(1-1) 的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.