在位置路徑中指定節點測試 (SQLXML 4.0)
節點測試會指定位置步驟所選取的節點類型。 每個軸(子系、 父系、 屬性或 自我)都有主體節點類型。 對於屬性座標軸,主體節點類型為< 屬性>。 針對父軸、子軸和自我軸,主體節點類型為 <元素>。
注意
不支援通配符節點測試 * (例如 child::*
, ) 。
節點測試:範例 1
位置路徑 child::Customer
會 <選取內容節點的 Customer> 元素子系。
在此範例中, child
是座標軸, Customer
而 是節點測試。 子軸的主要節點類型是 <元素>。 因此,如果 <Customer> 節點是元素>節點,則節點測試為 <TRUE。 如果內容節點沒有 <Customer> 子系,則會傳回一組空的節點。
節點測試:範例 2
位置路徑 attribute::CustomerID
會 選取內容節點的 CustomerID 屬性。
在此範例中, attribute
是座標軸,而 CustomerID
是節點測試。 屬性座標軸的主要節點類型是 <屬性>。 因此,如果 CustomerID 是屬性>節點,則節點測試為< TRUE。 如果內容節點沒有 CustomerID,則會傳回一組空的節點。
注意
在這個 XPath 實作中,如果位置步驟參考><架構中未宣告的專案或<屬性>類型,就會產生錯誤。 這與 MSXML 中的 XPath 實作不同,後者會傳回空的節點集。
軸的縮寫語法
支援位置路徑的下列縮寫語法:
attribute::
可以縮寫為@
。位置路徑
Customer[@CustomerID="ALFKI"]
與child::Customer[attribute::CustomerID="ALFKI"]
相同。child::
可以從位置步驟省略。因此, 子 系是預設座標軸。 位置路徑
Customer/Order
與child::Customer/child::Order
相同。self::node()
可以縮寫為一個句號(.),而且parent::node()
可以縮寫為兩個句號(..)。