LINQ to XML 座標軸概觀
建立 XML 樹狀結構,或將 XML 文件載入到 XML 樹狀結構後,您可以進行查詢以尋找項目和屬性並擷取其值。 您可以透過「座標軸方法」(Axis Method) 擷取集合,也稱為「座標軸」(Axis)。 有些座標軸是 XElement 和 XDocument 類別中,傳回 IEnumerable 集合的方法。 有些座標軸是 Extensions 類別中的擴充方法。 當做擴充方法實作的座標軸會在集合上運算,然後傳回集合。
如 XElement 類別概觀中所述,XElement 物件代表單一項目節點。 項目的內容可能很複雜 (有時候稱為結構化的內容),或者,它可能是簡單的項目。 簡單的項目可以是空的,也可以包含值。 如果節點包含結構化的內容,您可以使用各種座標軸方法來擷取子代項目的列舉。 最常使用的座標軸方法為 Elements 和 Descendants。
除了會傳回集合的座標軸方法之外,還有其他兩個常用於 LINQ to XML 查詢的方法。 Element 方法會傳回單一的 XElement。 Attribute 方法會傳回單一的 XAttribute。
就許多用途而言,LINQ 查詢會提供最強大的方式來檢查樹狀結構、從其中擷取資料並加以轉換。 LINQ 查詢會在實作 IEnumerable 的物件上運作,而 LINQ to XML 座標軸會傳回 Xelement 集合的 IEnumerable 以及 XAttribute 集合的 IEnumerable。 您需要這些集合,才能執行您的查詢。
除了擷取項目和屬性之集合的座標軸方法之外,還有其他座標軸方法可讓您仔細逐一查看樹狀結構。 例如,您可以使用樹狀結構的節點,而不是處理項目和屬性。 這些節點是比項目和屬性還要細微的位移單位等級。 使用節點時,您可以檢查 XML 註解、文字節點、處理指示等等。 這個功能對於撰寫字組處理器與想要將文件另存為 XML 之類的人而言,相當重要。 不過,多數的 XML 程式設計人員關心的都是項目、屬性及其值。
擷取項目集合的方法
下列為 XElement 類別 (或其基礎類別) 之方法的摘要,您可以在 XElement 上呼叫這些方法來傳回項目的集合。
方法 |
描述 |
---|---|
傳回此項目祖系之 XElement 的 IEnumerable。 多載會傳回其祖系具有指定之 XName 的 XElement 之 IEnumerable。 |
|
傳回此項目子代之 XElement 的 IEnumerable。 多載會傳回其子代具有指定之 XName 的 XElement 之 IEnumerable。 |
|
傳回此項目的子項目之 XElement 的 IEnumerable。 多載會傳回其子項目具有指定之 XName 的 XElement 之 IEnumerable。 |
|
傳回此項目後的項目之 XElement 的 IEnumerable。 多載會傳回具有指定之 XName 的這個項目後之項目的 XElement 之 IEnumerable。 |
|
傳回此項目前的項目之 XElement 的 IEnumerable。 多載會傳回具有指定之 XName 的這個項目前之項目的 XElement 之 IEnumerable。 |
|
傳回此項目及其祖系之 XElement 的 IEnumerable。 多載會傳回其項目具有指定之 XName 的 XElement 之 IEnumerable。 |
|
傳回此項目及其子代之 XElement 的 IEnumerable。 多載會傳回其項目具有指定之 XName 的 XElement 之 IEnumerable。 |
擷取單一項目的方法
下列方法會從 XElement 物件擷取單一子系。
方法 |
描述 |
---|---|
擷取屬性集合的方法
下列方法會從 XElement 物件擷取屬性。
方法 |
描述 |
---|---|
傳回所有屬性之 XAttribute 的 IEnumerable。 |
擷取單一屬性的方法
下列方法會從 XElement 物件擷取單一屬性。
方法 |
描述 |
---|---|
傳回具有指定之 XName 的 XAttribute。 |