首頁 後端開發 C#.Net教程 在.NET Framework中輕鬆處理XML資料(1-1)

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

Dec 20, 2016 pm 02:01 PM
.net framework xml數據

??在.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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Microsoft NET Framework 安裝問題 錯誤代碼 0x800c0006 修復 Microsoft NET Framework 安裝問題 錯誤代碼 0x800c0006 修復 May 05, 2023 pm 04:01 PM

.NETFramework4是開發人員和最終使用者在Windows上執行最新版本的應用程式所必需的。但是,在下載安裝.NETFramework4時,許多用戶抱怨安裝程式在中途停止,顯示以下錯誤訊息-「 .NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006 」。在您的裝置上安裝.NETFramework4時,如果您也在體驗它,那麼您就來對了地方

如何在 Windows 11/10 上使用 SetupDiag 識別 Windows 升級問題 如何在 Windows 11/10 上使用 SetupDiag 識別 Windows 升級問題 Apr 17, 2023 am 10:07 AM

每當您的Windows11或Windows10PC出現升級或更新問題時,您通常會看到一個錯誤代碼,指示故障背後的實際原因。但是,有時,升級或更新失敗可能不會顯示錯誤代碼,這時就會混淆。有了方便的錯誤代碼,您可以確切地知道問題出在哪裡,因此您可以嘗試修復。但是由於沒有出現錯誤代碼,因此識別問題並解決它變得極具挑戰性。這會佔用您大量時間來簡單地找出錯誤背後的原因。在這種情況下,您可以嘗試使用Microsoft提供的名為SetupDiag的專用工具,該工具可協助您輕鬆識別錯誤背後的真

Python實現XML資料的過濾與篩選 Python實現XML資料的過濾與篩選 Aug 09, 2023 am 10:13 AM

Python實現XML資料的過濾和篩選XML(eXtensibleMarkupLanguage)是一種用於儲存和傳輸資料的標記語言,它具有靈活性和可擴充性,常被用於在不同系統之間進行資料交換。在處理XML資料時,我們經常需要對其進行過濾和篩選,以提取我們所需的資訊。本文將介紹如何使用Python來實現XML資料的過濾與篩選。導入所需模組在開始之前,我們

SCNotification 已停止運作 [修復它的 5 個步驟] SCNotification 已停止運作 [修復它的 5 個步驟] May 17, 2023 pm 09:35 PM

身為Windows用戶,您很可能會在每次啟動電腦時遇到SCNotification已停止工作錯誤。 SCNotification.exe是一個微軟系統通知文件,由於權限錯誤和點網故障等原因,每次啟動PC時都會崩潰。此錯誤也以其問題事件名稱而聞名。因此,您可能不會將其視為SCNotification已停止工作,而是將其視為錯誤clr20r3。在本文中,我們將探討您需要採取的所有步驟來修復SCNotification已停止運作,以免它再次困擾您。什麼是SCNotification.e

分享幾個.NET開源的AI和LLM相關專案框架 分享幾個.NET開源的AI和LLM相關專案框架 May 06, 2024 pm 04:43 PM

當今人工智慧(AI)技術的發展如火如荼,它們在各個領域都展現了巨大的潛力和影響力。今天大姚給大家分享4個.NET開源的AI模型LLM相關的專案框架,希望能為大家提供一些參考。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一種開源的軟體開發工具包(SDK),旨在將大型語言模型(LLM)如OpenAI、Azure

Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 將於 2022 年 4 月終止支持 Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 將於 2022 年 4 月終止支持 Apr 17, 2023 pm 02:25 PM

已安裝Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用戶如果希望Microsoft將來透過產品更新支援該框架,則必須安裝較新版本的Microsoft框架。據微軟稱,這三個框架都將在2022年4月26日停止支援。支援日期結束後,產品將不會收到「安全修復或技術支援」。大多數家庭設備透過Windows更新保持最新。這些設備已經安裝了較新版本的框架,例如.NETFramework4.8。未自動更新的設備可能

C#的就業前景如何 C#的就業前景如何 Oct 19, 2023 am 11:02 AM

無論您是初學者還是有經驗的專業人士,掌握C#將為您的職業發展鋪平道路。

適用於 Windows 11 的KB5012643破壞了.NET Framework 3.5應用程式 適用於 Windows 11 的KB5012643破壞了.NET Framework 3.5應用程式 May 09, 2023 pm 01:07 PM

自從我們談論影響安裝KB5012643forWindows11的用戶的新安全模式錯誤以來已經過去了一周。這個討厭的問題並沒有出現在微軟在發布當天發布的已知問題清單中,因此讓所有人都感到驚訝。好吧,就在您認為情況不會變得更糟的時候,微軟為安裝此累積更新的用戶投下了另一顆炸彈。 Windows11Build22000.652導致更多問題因此,這家科技公司警告Windows11用戶,他們在啟動和使用某些.NETFramework3.5應用程式時可能會遇到問題。聽起來很熟悉?不過請不要驚

See all articles