LINQ基礎學習之LINQ to XML
LINQ to XML是很前沿的一項技術,他的功能十分的強大,很多人對此可能還不是很熟悉,所以筆者來向大家介紹一下。
LINQ to XML 提供使用 .NET 語言集成查詢 (LINQ) Framework 的內存中 XML 編程接口。LINQ to XML 使用***的 .NET Framework 語言功能,相當于更新的和重新設計的文檔對象模型 (DOM) XML 編程接口。
.NET Framework提供了大量的API用于處理XML數據. 從Framework 3.5開始, 對于處理常規XML文檔的***選擇將是LINQ to XML. LINQ to XML包含一個輕量級的LINQ友好的XML文檔對象模型, 以及一系列附加的查詢操作符.。
在多數場景中, 它可以被當中是先前的W3C兼容的DOM模型的替換(即XmlDocument). LINQ to XML DOM設計極其優良并且可以高效執行. 即使沒有LINQ, LINQ to XML DOM作為對低級XmlReader和XmlWriter的門面(Facade)包裝也是非常有價值的.
所有的LINQ to XML類型都定義在System.Xml.Linq命名空間下.
LINQ to XML架構概貌
考慮以下的XML文件
- "1.0" encoding="utf-8" standalone="yes"?>
"123" status="archived"> Joe Bloggs
對于所有的XML文件, 我們首先定義一個聲明, 然后定義一個root元素, 它的名稱是customer. customer元素包含有兩個屬性, 并各自有名稱(id和status)以及對應值(”123″和”archived”). customer還擁有兩個子元素, firstName和lastName, 它們還包含了各自的簡單文本內容(”Joe”和”Bloggs”).
所有的這些構件–聲明,元素,屬性,值以及文本內容, 都可以用一個類來展現. 如果這樣的一個類型擁有集合屬性來存儲子內容的話, 我們可以聚合一棵對象樹來描述一個文檔. 這被稱為文檔對象模型, 即DOM.
LINQ to XML包含兩個內容:
一個XML DOM, 我們稱它為X-DOM
一系列附加的查詢操作符
正如你可能期待的那樣, X-DOM的組成類型包括像XDocument, XElement以及XAttribute. 有趣的是, X-DOM的類型并不依賴于LINQ–在沒有編寫任何LINQ to XML查詢的情況下你依然可以加載, 實例化, 更新以及保存一個X-DOM.
相反的, 你能夠使用LINQ去查詢一個DOM并創建一個老式的W3C兼容的類型. 然而, 過程可能會令人沮喪并且會有一定的限制. 一個區別(與W3C DOM比)的特征是XDOM是LINQ友好的, 這意味著:
它擁有一些方法去處理IEnumerable序列,可以通過LINQ to XML去構建一棵XDOM對象樹 。
以上就是對LINQ to XML的簡單闡述。
【編輯推薦】