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