C 讀寫XML的兩種一般方式

2022-05-08 20:18:17 字數 1199 閱讀 4150

針對xml文件的應用程式設計介面中,一般有兩種模型:w3c制定的dom(document object method,文件物件模型)和流模型。

流模型的兩種變體:"推"模型(xml的簡單api)和"拉"模型(.net中的流模型)。

xml的解析方法:

「推」模型

「拉」模型

dom「推」模型也就是常說的sax,sax是一種靠事件驅動的模型。它每發現乙個節點就用「推」模型引發乙個事件。

.net在中對xml解析是基於「拉」模型的實現方案。「拉」模型在遍歷文件時會把感興趣的部分從讀取器中拉出來,不需要引發事件。在.net中「拉」模型通過xml閱讀器(xmltextreader類)來實現

.net中使用xml dom分析器(xmldocument)實現dom模型。

缺點必須編寫這些事件的處理程式,很麻煩且複雜。不能對文件進行隨機訪問和修改。

xmltextreader類是唯讀的,向前的,不能再文件中執行向後導航操作。

需要一次性載入整個文件到記憶體中,對於大型文件會造成資源問題。

優點不需要把xml文件完全載入到記憶體中,是乙個分析大型xml文件的高效api。

允許我們一程式設計的方式訪問文件,大大提高了靈活性,可以選擇性處理節點,記憶體中只儲存當前節點。xmltextreader類能檢驗文件是否格式良好,如果不是良好格式的xml該類在讀取過程中會丟擲xmlexception異常。

允許編輯和更新xml文件,可以隨機訪問文件中的資料,可以使用xpath查詢。

.net framework支援xml dom分析器(xmldocument類)和xml閱讀器(xmltextreader類),不支援sax分析器。但可以通過xml閱讀器很容易的實現sax的所有功能及更有效的運用。

在system.xml 命名空間中組織進了以下幾個用於xml的類:

xmltextreader---提供以快速、單向、無緩衝的方式訪問xml資料。(單向意味著你只能從  前往後讀取xml檔案,而不能逆向讀取)

xmlvalidatingreader---與xmltextreader類一起使用,提供驗證dtd、xdr和xsd架構的能力。

xmldocument---遵循w3c文件物件模型規範的一級和二級標準,實現xml資料隨機的、有快取的訪問。一級水平包含了dom的最基本的部分,而二級水平增加多種改進,包括增加了對命名空間和級連狀圖表(css)的支援。

xmltextwriter---生成遵循 w3c xml 1.0 規範的xml檔案。

XML解析的兩種方式區別

xml解析的兩種方式區別 1.dom解析 需要xml完全載入進記憶體才可以操作 可以方便進行增刪改查操作,耗費記憶體 2.sax解析 逐漸掃瞄xml檔案,當遇到標籤時觸發解析處理器,不需要載入進記憶體 只能讀取,無法進行增刪改查 dom解析 具體解析步驟如下 documentbuilde ctory...

讀寫ASCII檔案的兩種方式

讀寫ascii檔案的兩種方式 讀取檔案的路徑 example idl asciifile file dirname routine filepath test readf data ascii.txt idl asciifile f crfurtherstudy idl idl85workspace...

懸臂式貨架一般採用兩種材料製作

懸臂式貨架是通過怎樣的結構和生產工藝達到相應承載的 懸臂式貨架作為長物料 環型物料 板材 管材及不規則貨物最常用的貨架形式,具有結構穩定,載重能力好 空間利用率高等特點,那是怎樣的機構和工藝讓它達到好的承載呢,下面就由寶德龍貨架來介紹下 懸臂式貨架結構 採用專用型材立柱,配高強度懸臂,適用於存放長形...