共用方式為


位置步驟

位置步驟可選取一組相對於內容節點的節點 (節點集)。

位置步驟可分成三個部分:選擇性的座標軸、節點測試,以及選擇性的述詞。位置步驟的語法是在座標軸名稱之後加上雙冒號、接著是節點測試,最後是零或其他述詞,每個述詞都會以方括弧括起來。此語法最基本的形式如下:

axis::nodetest[predicate]
  • axis
    指定內容節點與位置步驟所要選取的節點之間的樹狀結構關聯性。換句話說,座標軸可指出從內容節點開始執行位置步驟的一般方向。在位置步驟中,座標軸是選擇性項目。若將其省略,座標軸會預設為 child::。此外,有數個座標軸具有捷徑形式;例如連字號 (@) 字元即為屬性軸的捷徑。
  • nodetest
    指定位置步驟最初要選取之節點的節點型別或展開名稱。基本上,節點測試可指出在指定座標軸上所有節點之中,應將哪些節點視為位置步驟的候選項目,也就是可能的相符項目。
  • 述詞
    使用 XPath 運算式 (要符合的條件) 可進一步精準化位置步驟所選取的節點集。述詞是一種篩選條件,可指定選取準則以進一步縮小候選節點的清單。述詞為選用項目。位置步驟中若沒有述詞,就不會有方括弧 ([])。

選取節點

位置步驟所選取的節點集,乃是根據座標軸與節點測試之間的關聯性所產生的初始節點集,經過每個述詞依序對其進行篩選之後,所獲致的節點集。

初始節點集所含的節點符合以下兩個準則:

  • 這些節點對座標軸所指定的內容節點具有關聯性。

  • 這些節點具有節點測試所指定的節點型別與展開名稱。

XPath 接著會使用位置步驟中的第一個述詞來篩選初始節點集,以產生新的節點集。然後,XPath 會使用第二個述詞來篩選第一個述詞所產生的節點集。這項篩選程序會重複執行,直到 XPath 完成所有述詞的評估為止。套用了所有述詞後所產生的節點集,即為位置步驟所選取的節點集。

ms256472.note(zh-tw,VS.100).gif注意:
由於座標軸會影響每個述詞的運算式評估,因此必須定義關於指定座標軸的述詞語意。

下表列出某些使用完整語法的範例位置步驟。

位置步驟 說明

child::*[position()=1]

尋找內容節點的第一個子節點。

ancestor-or-self::book[@catdate="2000-12-31"]

尋找內容節點之任何 <book> 子系的所有祖系,以及 <book> 子系本身,前提是,前述的項目具有 catdate 屬性,且其值為 "2000-12-31"

//parent::node()[name()="book"] | descendant::node()[name()="author"]

尋找文件中任何父節點名為 "book" 的節點,或任何繼承自 "author" 內容節點的節點。

另請參閱

參考


節點測試
述詞