XPath 運算式的內容
XPath 運算式的評估取決於運算式運作時所在的內容。內容中包含了運算式評估時所依據的節點,以及其相關環境,其中包括下列項目:
內容節點相對於其同層級在文件順序中的位置。
內容大小 — 亦即,內容節點的同層級數再加一。
可讓變數參考進行解析的變數繫結。
函式程式庫。
運算式範圍內的命名空間宣告。
若要進一步瞭解內容的概念,請考量含有節點的樹狀結構。若要求樹狀結構的根中所有名為 X 的節點,會傳回某一組結果,而要求樹狀結構中某個分支的這種節點,則會傳回另一組結果。因此,運算式的結果取決於其執行所在的內容。
運算式可符合某個特定內容的特定模式,傳回結果,然後執行與傳回的節點內容相關的其他作業。如此可讓 XPath 運算式有更大的彈性可徹底搜尋文件樹狀結構。
基本 XPath 運算式
以下是 XPath 運算式的基本型別。每個型別的說明如下。
目前內容
文件根
根項目
遞迴下降
特定項目
範例
下列範例將說明某些基本 XPath 運算式。結合這些簡單運算式,以及使用各種 XPath 運算子與特殊字元,就有可能使用更複雜的運算式。
目前內容
以句號與正斜線 (./) 做為前置詞的運算式,會明確地以目前內容做為內容。例如,下列運算式會參考目前內容節點中所有的<author>
項目:./author
請注意,這和下行是一樣的:
author
文件根
以正斜線 (./) 做為前置詞的運算式,會使用文件樹狀結構的根做為內容。例如,下列運算式會參考此文件的根上的<bookstore>
項目:/bookstore
根項目
使用正斜線、後面連著星號 (/*) 的運算式,會使用根項目做為內容。例如,下列運算式會尋找文件的根項目:/*
遞迴下降
使用兩個正斜線 (//) 的運算式,表示可包含零個或更多階層層級的搜尋。當此運算子顯示在模式的開頭時,內容會與文件的根有關聯。例如,下列運算式會參考目前文件中所有的<author>
項目://author
// 前置詞表示內容以目前內容所指示的階層層級做為開始。
特定項目
以項目名稱開頭的運算式,會從目前內容節點開始,參考特定項目的查詢。例如,下列運算式會在目前內容節點中,參考<images>
項目內的<background.jpg>
項目:images/background.jpg
下列運算式會在目前內容節點中,參考
<bookstore>
項目內的<book>
項目集合:bookstore/book
下列運算式會參考目前內容節點中所有的
<first.name>
項目:first.name
注意: 項目名稱可包含句號字元 (.)。這些名稱可像任何其他名稱一般使用。
DOM 中的內容
使用含有 Microsoft XML DOM 的 XPath 運算式時,內容將是 selectNodes 方法或 selectSingleNode 方法已被呼叫的 Node 物件。
直接從 DOM 使用 XPath 時,您必須從特定的節點定義內容。
XSLT 中的內容
直接從 XSLT 使用 XPath 時,您必須由目前節點定義內容。
其他資源
如需詳細資訊,請參閱 www.w3.org/TR/xpath 上的<XML 路徑語言 (XPath) 1.0 版>(W3C 建議事項,1999 年 11 月 16 日)(英文)。