共用方式為


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
    
    ms256199.note(zh-tw,VS.100).gif注意:
    項目名稱可包含句號字元 (.)。這些名稱可像任何其他名稱一般使用。

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 日)(英文)。