C#讀寫XML的兩種一般方式

來源:互聯網
上載者:User

標籤:

針對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的類:

  1. XMLTextReader---提供以快速、單向、無緩衝的方式存取XML資料。(單向意味著你只能從  前往後讀取XML檔案,而不能逆向讀取)
  2. XMLValidatingReader---與XMLTextReader類一起使用,提供驗證DTD、XDR和XSD架構的能力。
  3. XMLDocument---遵循W3C文件物件模型規範的一級和二級標準,實現XML資料隨機的、有緩衝的存取。一級水平包含了DOM的最基本的部分,而二級水平增加多種改進,包括增加了對名稱空間和級連狀圖表(CSS)的支援。
  4. XMLTextWriter---產生遵循 W3C XML 1.0 規範的XML檔案。

C#讀寫XML的兩種一般方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.