快速上手LINQ to XML
在我們的程序中,我們經常需要將一些系統的數據、信息保存在文件中,而不是保存在數據庫中,在.NET中,我通常都是選擇將這些系統的數據、信息保存在XML中。
操作XML的技術有很多種:
1)DOM(Document Object Model,文檔對象模型),它為XML文檔提供了一個標準的解析。
2)XPath和XSLT,它們提供了查詢和格式化XML的功能。
3).NET框架中提供了一些對XML操作的類(在System.XML命名空間下)。
4)LINQ to XML。
在我看來有了LINQ to XML技術,.NET中其它操縱XML的技術都可以棄而不用了,因為LINQ to XML操縱XML比其它技術都更簡單更方便也更直觀。
LINQ to XML 是基于LINQ的,所以可以使用LINQ的所有功能,如標準查詢操作符(詳細可閱讀《LINQ標準查詢操作符詳解》)和LINQ的編程接口。使用LINQ to XML可以很方便地將XML文件加載到內存中,對XML文檔中的節點進行查詢修改刪除等各種操作,然后又可以很方便地將操作后的XML文檔保存回磁盤。
System.Xml.Linq的命名空間中包含了LINQ to XML處理XML用到的所有類,共有19個類,如下所示。
類 說明
包含 LINQ to XML 擴展方法。
表示一個 XML 特性。
表示一個包含 CDATA 的文本節點。
表示一個 XML 注釋。
表示可包含其他節點的節點。
表示一個 XML 聲明。
表示 XML 文檔。
表示 XML 文檔類型定義 (DTD)。
表示一個 XML 元素。
表示 XML 元素或特性的名稱。
表示一個 XML 命名空間。此類不能被繼承。
表示 XML 樹中節點的抽象概念(元素、注釋、文檔類型、處理指令或文本節點)。
包含用于比較節點的文檔順序的功能。無法繼承此類。
比較節點以確定其是否相等。無法繼承此類。
表示 XML 樹中的節點或特性。
提供有關 Changing和 Changed事件的數據。表示 XML 處理指令。
表示支持延遲流輸出的 XML 樹中的元素。
表示一個文本節點。
這19個類提供了很多很多的方法,事實上很少人會在學習LINQ to XML的時候去學習每一種的方法的細節,本文的目的是讓從來沒有使用過LINQ to XML的童鞋在需要使用LINQ to XML技術的時候快速上手,然后用之于自己的程序開發中,所以本文只講LINQ to XML處理XML類中最常用、用到最多的三個類,分別是XDocument、XElement和XAttribute。
XDocument類派生于XContainer類,因此它可以有子節點,但XML的標準限制了XDocument對象只包含單個XElement子節點,因為XML文檔只允許有一個根節點。
XDocument提供了處理有效XML文檔,包括聲明、注釋和處理指令。
XDocument 可以包含以下元素:
1)一個 XDeclaration 對象。 XDeclaration 使您能夠指定 XML 聲明的相關部分:XML 版本、文檔的編碼以及 XML 文檔是否是獨立的。
2)一個 XElement 對象。 這是 XML 文檔的根節點。
3)任意數目的 XProcessingInstruction 對象。 處理指令將信息傳遞給處理 XML 的應用程序。
4)任意數目的 XComment 對象。 注釋將與根元素同級。 XComment 對象不能是列表中的第一個參數,因為 XML 文檔以注釋開頭無效。
5)一個用于 DTD 的 XDocumentType。
原文鏈接:http://www.cnblogs.com/zoupeiyang/archive/2011/07/25/2115941.html
【編輯推薦】