C#中使用XML——讀取XML

來源:互聯網
上載者:User
對於XML,想必各位都比較瞭解,我也就不用費筆墨來描述它是什麼了,我想在未來的Web開發中XML一定會大放異彩,XML是可延伸標記語言 (XML),使用它企業可以制定一套自己的資料格式,資料按照這種格式在網路中傳輸然後再通過XSLT將資料轉換成使用者期望的樣子表示出來,這樣便輕易的解決了資料格式不相容的問題。用於Internet的資料轉送,我想,這是XML對於我們這些程式員最誘人的地方!
我們今天的主題不是論述XML的好處,而是討論在C#中如何使用XML。下面我們來瞭解一下使用程式訪問XML的一些基礎理論知識。
訪問的兩種模型:
在程式中訪問進而操作XML檔案一般有兩種模型,分別是使用DOM(文件物件模型)和流模型,使用DOM的好處在於它允許編輯和更新XML文檔,可以隨機訪問文檔中的資料,可以使用XPath查詢,但是,DOM的缺點在於它需要一次性的載入整個文檔到記憶體中,對於大型的文檔,這會造成資源問題。流模型很好的解決了這個問題,因為它對XML檔案的訪問採用的是流的概念,也就是說,任何時候在記憶體中只有當前節點,但它也有它的不足,它是唯讀,僅向前的,不能在文檔中執行向後導航操作。雖然是各有千秋,但我們也可以在程式中兩者並用實現優劣互補嘛,呵呵,這是題外話了!我們今天主要討論XML的讀取,那我們就詳細討論一下流模型吧!
流模型中的變體:
流模型每次迭代XML文檔中的一個節點,適合於處理較大的文檔,所耗記憶體空間小。流模型中有兩種變體——“推”模型和“拉”模型。
推模型也就是常說的SAX,SAX是一種靠事件驅動的模型,也就是說:它每發現一個節點就用推模型引發一個事件,而我們必須編寫這些事件的處理常式,這樣的做法非常的不靈活,也很麻煩。
.NET中使用的是基於“拉”模型的實現方案,“拉”模型在遍曆文檔時會把感興趣的文檔部分從讀取器中拉出,不需要引發事件,允許我們以編程的方式訪問文檔,這大大的提高了靈活性,在效能上“拉”模型可以選擇性的處理節點,而SAX每發現一個節點都會通知客戶機,從而,使用“拉”模型可以提高Application的整體效率。在.NET中“拉”模型是作為XmlReader類實現的,下面看一下該類的繼承結構:

聯繫我們

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