首頁  >  文章  >  後端開發  >  在.NET Framework中輕鬆處理XML資料(1-1)

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

黄舟
黄舟原創
2016-12-20 14:01:311850瀏覽

??在.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) 的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn