LINQ to XML 軸
定義:
建立XML樹或將XML文檔載入到XML樹之後,可以進行查詢,從而尋找元素並檢索它們的值。
兩類軸方法:
-一些軸就是XELement和XDocument類中返回IEnumerable(T)集合的方法。
-另一些軸方法是Extensions類中的擴充方法。實現為擴充方法的軸對集合進行操作,然後返回集合。
XContainer是XElement的基類!
-常見的軸方法:
-XContainer.Elements()返回集合
-XContainer.Descendants()返回集合
-XContainer.Element()返回單個元素
-XElement.Attribute(XName)返回單個屬性
-XElement.Attributes(XName)返回所有屬性集合
下面是XElement類(或其基類)的方法匯總,可以對XElement調用這些方法以返回元素集合
-XNode.Ancestors
-返回此元素的上級的XElement的IEnumerable(T)
-XContainer.Descendants
-返回此元素的子代的XElement的IEnumerable(T)
-XContainer.Elements
-返回此元素的子項目XElement的IEnumerable(T)
-XNode.ElementsAfterSelf
-返回此元素之後的元素的XElement的IEnumerable(T)
-XNode.ElementsBeforeSelf
-返回此元素之前的元素的XElement的IEnumerable(T)
-XElement.AncestorsAndSelf
-返回此元素及其上級的XElement的IEnumerable(T)
-XElementDescendantsAndSelf
-返回此元素及其子代的XElement的IEnumerable(T)
如何擷取元素的值,有兩種主要方法可以完成此操作
– 一種方法是將XElement 或XAttribute 強制轉換為所需的類型。
然後,顯式轉換運算子將元素或屬性的內容轉換為指定的類型,
並將其分配給變數。
– 此外,還可以使用XElement.Value 屬性或XAttribute.Value 屬性
• 但是,對於C#,強制轉換通常是更好的方法。在檢索可
能存在也可能不存在的元素(或屬性)的值時,如果將元
素或屬性強制轉換為可以為null 的類型,則代碼會更易於
編寫
• 無法通過強制轉換設定元素的內容,而通過
XElement.Value 屬性可以做到這一點
Code
1//檢索元素集合
2XElement root = new XElement("Root",
new XElement("child1", "1"),
new XElement("child2", "2")
);
Console.WriteLine(root);
IEnumerable<XElement> childElements =
from el in root.Elements()
select el;
foreach (XElement el in childElements)
Console.WriteLine("Name: " + el.Name);
Console.ReadLine();