共用方式為


在位置路徑中指定節點測試 (SQLXML 4.0)

節點測試會指定位置步驟所選取的節點類型。每個軸 (child、parent、attribute 或 self) 都有一個主要節點類型。若為 attribute 軸,主要節點類型會是 <attribute>。若為 parent、child 和 self 軸,主要節點類型會是 <element>

[!附註]

不支援萬用字元節點測試 * (例如 child::*)。

節點測試:範例 1

位置路徑 child::Customer 會選取內容節點的 <Customer> 元素子系。

在此範例中,child 為軸,而 Customer 為節點測試。child 軸的主要節點類型是 <element>。因此,如果 <Customer> 節點是 <element> 節點,節點測試就是 TRUE。若內容節點沒有 <Customer> 子系,則會傳回空的節點集。

節點測試:範例 2

位置路徑 attribute::CustomerID 會選取內容節點的 CustomerID 屬性。

在此範例中,attribute 為軸,而 CustomerID 為節點測試。attribute 軸的主要節點類型為 <attribute>。因此,如果 CustomerID<attribute> 節點,節點測試就是 TRUE。若內容節點沒有 CustomerID,則會傳回空的節點集。

[!附註]

在這個 Xpath 實作中,如果位置步驟參考未在此結構描述中宣告的 <element><attribute> 類型,則會產生錯誤。這與 MSXML 中的 XPath 實作不同,該實作會傳回空的節點集。

軸的縮寫語法

位置路徑的以下縮寫語法有受到支援:

  • attribute:: 可縮寫成 @。

    位置路徑 Customer[@CustomerID="ALFKI"] 與 child::Customer[attribute::CustomerID="ALFKI"] 相同。

  • 位置步驟中可省略 child::。

    因此,child 是預設軸。位置路徑 Customer/Order 與 child::Customer/child::Order 相同。

  • self::node() 可以縮寫成一個句號 (.),而 parent::node() 可縮寫成兩個句號 (..)。