指定位置路徑 (SQLXML 4.0)
XPath 查詢是以表示式的形式指定。 有各種表達式。 位置路徑是一個運算式,可選取一組相對於內容節點的節點。 評估位置路徑的結果是節點集。
位置路徑的類型
位置路徑可以採用下列其中一種形式:
絕對位置路徑
絕對位置路徑會從檔的根節點開始。 它是由斜線標記 (/) 所組成,選擇性地後面接著相對位置路徑。 斜線標記 (/) 會選取檔的根節點。
相對位置路徑
相對位置路徑會從檔中的內容節點開始。 位置路徑是由一或多個位置步驟序列所組成,並以斜線標記 (/) 分隔。 每個步驟都會選取一組相對於內容節點的節點。 步驟的初始順序會選取一組相對於內容節點的節點。 該集合中的每個節點都會作為下列步驟的內容節點。 由該步驟所識別的節點集合已聯結。 例如,child::Order/child::OrderDetail 會<選取內容節點之< Order 元素子系的 OrderDetail>> 元素子系。
注意
在 XPath 的 SQLXML 4.0 實作中,即使 XPath 不是明確絕對,每個 XPath 查詢都會從根內容開始。 例如,以 「Customer」 開頭的 XPath 查詢會被視為 「/Customer」。。 在 XPath 查詢 Customer[Order]中,客戶會從根內容開始,但 Order 會從 Customer 內容開始。 如需詳細資訊,請參閱 使用 XPath 查詢簡介 (SQLXML 4.0) 。
位置步驟
位置路徑 (絕對或相對) 是由包含三個部分的位置步驟所組成:
Axis
座標軸會指定位置步驟與內容節點所選取節點之間的樹狀結構關聯性。 支援父軸、子軸、屬性和自我軸。 如果在位置路徑中指定子軸,則查詢所選取的所有節點都是內容節點的子系。 如果指定父座標軸,選取的節點就是內容節點的父節點。 如果指定了屬性軸,選取的節點就是內容節點的屬性。
節點測試
節點測試會指定位置步驟所選取的節點類型。 每個軸(子系、 父系、 屬性和 自我)都有主體節點類型。 對於屬性座標軸,主體節點類型為< 屬性>。 針對父軸、子軸和自我軸,主體節點類型為 <元素>。
例如,如果位置路徑指定 child::Customer,<則會選取內容節點的 Customer> 元素子系。 因為子軸有< 元素>做為其主體節點類型,因此如果 Customer 是元素>節點,則節點測試 Customer 是 <TRUE。
選取述詞 (零個或多個)
述詞會根據座標軸篩選節點集。 在 XPath 表達式中指定選取述詞類似於在 SELECT 語句中指定 WHERE 子句。 述詞是在括弧之間指定。 套用選取述詞中指定的測試會篩選節點測試所傳回的節點。 針對要篩選之節點集中的每個節點,述詞表達式會以該節點作為內容節點進行評估,並將節點集中的節點數目評估為內容大小。 如果述詞表達式評估為該節點的 TRUE,則節點會包含在產生的節點集中。
位置步驟的語法是座標軸名稱和節點測試,以兩個冒號分隔(::),後面接著零個或多個表達式,每個以方括號為單位。 例如,XPath 運算式 (location path) child::Customer[@CustomerID='ALFKI'] 會選取內容節點的所有 <Customer> 元素子系。 接著,述詞中的測試會套用至節點集,其 CustomerID 屬性只會<傳回屬性值為 'ALFKI' 的 Customer> 元素節點。
本節內容
指定軸 (SQLXML 4.0)
提供指定座標軸的範例。
在位置路徑中指定節點測試 (SQLXML 4.0)
提供指定節點測試的範例。
在位置路徑中指定選取述詞 (SQLXML 4.0)
提供指定選取述詞的範例。