1. LINQ to XML 簡介web
1.1. 使用 LINQ 訪問 XML
• 更好的操做 XML
• 支持語言集成查詢
• 更方便、更快速、更簡單、更智能的XML API編程
1.2. LINQ to XML
• LINQ to XML 是一種啓用了 LINQ 的內存XML 編程接口,使用它,能夠在 .NET
Framework 編程語言中處理XML。
• 它將 XML 文檔置於內存中,這一點很像文檔對象模型(DOM)。
• 它提供一種新的對象模型,這是一種更輕量的模型,使用也更方便,這種模型利用
了Visual C# 2008 在語言方面的改進。asp.net
2. LINQ to XML 類編程語言
2.1. XElement 類
• 它表示一個 XML 元素
• 能夠使用該類
– 建立元素
– 更改元素內容
– 添加、更改或刪除子元素
– 向元素中添加屬性
– 以文本格式序列化元素內容
• 能夠與 System.Xml 中的其餘類(例如XmlReader、XmlWriter 和
XslCompiledTransform)進行互操做。函數
2.2. XAttribute 類
• 屬性是與元素關聯的名稱/值對
• XAttribute 類表示 XML 屬性
• 屬性集合的LINQ 查詢表達式與元素集合的LINQ 查詢表達式看起來很是類似。spa
2.3. XDocument 類
• XDocument 類包含有效的 XML 文檔所需的信息。其中包括XML 聲明、處理指令和註釋。
• 若是須要XDocument 類提供的特定功能,您只需建立XDocument 對象。在不少狀況下,能夠
直接使用Xelement。直接使用XElement 是一種比較簡單的編程模型。
• XDocument 是從XContainer 派生的。所以,它能夠包含子節點。可是,XDocument 對象只能有
一個子XElement 節點。這反映了XML 標準,即在 XML 文檔中只能有一個根元素。.net
3. 使用LINQ to XMLcode
3.1. XElement 類功能
• 構造 XML 樹
• 序列化 XML 樹
• 經過軸方法檢索XML 數據
• 查詢XML 樹
• 修改 XML 樹orm
3.2. 構造 XML 樹
• 「函數構造」方法
–經過將查詢結果用做 XElement 和 XAttribute對象構造函數的參數,實現了一種功能強大的
建立 XML 樹的方法。
– 利用這種方法,開發人員能夠方便地將XML樹從一種形狀轉換爲另外一種形狀。
• 分析字符串
• 從文件加載對象
3.3. 序列化 XML 樹
• XML 樹能夠序列化爲
–字符串
– File
– TextWriter
– XmlWriter
– XmlReader
3.4. LINQ to XML 軸
3.5. 查詢與轉換 XML 樹
• 基本查詢
• 使用LINQ查詢操做符查詢
• 轉換XML 格式
• 將集合、數據轉換成XML
• 轉換成其它數據格式
3.6. 修改 XML 樹
• 內存中 XML 樹修改與函數構造
• 向 XML 樹中添加元素、屬性和節點
• 修改XML 樹中的元素、屬性和節點
• 從XML 樹中移除元素、屬性和節點
• 維護名稱/值對
• 更改整個XML 樹的命名空間
4. 實現:生成RSS
NorthwindDataContext db = new NorthwindDataContext();
XElement rssRoot = new XElement("rss",
new XAttribute("version", "2.0"),
new XElement(「channel」,
new XElement("title", "My RSS Feed"),
new XElement("link", "http://weblogs.asp.net"),
new XElement("description", "Northwind Products Feed"),
from product in db.Products
orderby product.ProductName descending
select new XElement("item",
new XElement("title", product.ProductName),
new XElement("link", "p.aspx?id="+product.ProductID),
new XElement("description", "Supplier: " +
product.Supplier.CompanyName)
)
)
);
Response.Write(rssRoot.ToString());