適用於 XPath 使用者的 LINQ to XML

這組主題顯示多個 XPath 運算式及其 LINQ to XML 對等用法。 

所有範例都使用 LINQ to XML 中,System.Xml.XPath.Extensions 的擴充方法所提供的 XPath 功能。 這些範例會同時執行 XPath 運算式與 LINQ to XML 運算式。 接著,每個範例都會比較兩個查詢的結果,以驗證 XPath 運算式在功能上等同於 LINQ to XML 查詢。 由於兩種類型的查詢都會從相同的 XML 樹狀結構傳回節點,因此會使用參考識別進行查詢結果比較。

本節內容

主題

描述

XPath 和 LINQ to XML 的比較

提供 XPath 和 LINQ to XML 之間的相同處與相異處概觀。

HOW TO:尋找子項目 (XPath-LINQ to XML)

比較 XPath 子項目座標軸與 LINQ to XML Element 方法。 

相關聯的 XPath 運算式為:"DeliveryNotes"。

HOW TO:尋找子項目的清單 (XPath-LINQ to XML)

比較 XPath 子項目座標軸與 LINQ to XML Elements 座標軸。

相關聯的 XPath 運算式為:"./*"

HOW TO:尋找根項目 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 取得根項目。

相關聯的 XPath 運算式為:"/PurchaseOrders"

HOW TO:尋找子代項目 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 取得具有特定名稱的子代項目。

相關聯的 XPath 運算式為:"//Name"

HOW TO:篩選屬性 (XPath - LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 取得具有指定之名稱以及具有指定值之屬性的子代項目。

相關聯的 XPath 運算式為:".//Address[@Type='Shipping']"

HOW TO:尋找相關項目 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 取得在另一個項目值參考的屬性上選取的項目。

相關聯的 XPath 運算式為:".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]"

HOW TO:在命名空間中尋找項目 (XPath-LINQ to XML)

比較 XPath XmlNamespaceManager 類別的用法與 XName 類別的 LINQ to XML Namespace 屬性,以便與 XML 命名空間搭配使用。

相關聯的 XPath 運算式為:"./aw:*"

HOW TO:尋找前面同層級 (XPath-LINQ to XML)

比較 XPath preceding-sibling 座標軸與 LINQ to XML 子系 XNode.ElementsBeforeSelf 座標軸。 

相關聯的 XPath 運算式為:"preceding-sibling::*"

HOW TO:尋找子項目的子系 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 取得具有特定名稱之子項目的子代項目。

相關聯的 XPath 運算式為:"./Paragraph//Text/text()"

HOW TO:尋找兩個位置路徑的聯集 (XPath-LINQ to XML)

比較等位運算子 | 在 XPath 中的用法與 Concat<TSource> 標準查詢運算子在 LINQ to XML 中的用法。

相關聯的 XPath 運算式為:"//Category|//Price"

HOW TO:尋找同層級節點 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 尋找具有特定名稱之節點的所有同層級。

相關聯的 XPath 運算式為:"../Book"

HOW TO:尋找父代的屬性 (XPath-LINQ to XML)

比較如何使用 XPath 和 LINQ to XML 導覽到父項目並尋找相關聯的屬性。

相關聯的 XPath 運算式為:"../@id"

HOW TO:利用特定名稱尋找同層級的屬性 (XPath-LINQ to XML)

比較如何利用 XPath 和 LINQ to XML 尋找內容節點之同層級的特定屬性。

相關聯的 XPath 運算式為:"../Book/@id"

HOW TO:尋找具有特定屬性的項目 (XPath-LINQ to XML)

比較如何使用 XPath 和 LINQ to XML 尋找包含特定屬性的所有項目。

相關聯的 XPath 運算式為:"./*[@Select]"

HOW TO:根據位置尋找子項目 (XPath-LINQ to XML)

比較如何使用 XPath 和 LINQ to XML,根據其相對位置尋找項目。

相關聯的 XPath 運算式為:"Test[position() >= 2 and position() <= 4]"

HOW TO:尋找正前面的同層級 (XPath - LINQ to XML)

比較如何使用 XPath 和 LINQ to XML 尋找節點正前面的同層級。

相關聯的 XPath 運算式為:"preceding-sibling::*[1]"

請參閱

參考

System.Xml.XPath

概念

查詢 XML 樹狀結構

使用 XPath 資料模型處理 XML 資料