共用方式為


名稱測試

名稱測試是最常使用的節點測試形式,因為它可讓您明確地為要選取的節點指定名稱。但僅指定節點的名稱並不足以自動選取適當的節點,因為文件樹狀結構中可能有不同的節點型別使用相同的名稱。若要選取適當的節點,名稱測試只會選取名稱符合指定名稱、且節點型別符合指定座標軸之主要節點型別的節點。

下表列出各種座標軸的主要節點型別。

座標軸

主要節點型別

attribute:: 軸或 namespace:: 軸以外所有其他的座標軸 (也就是可包含項目的座標軸)

element

attribute

attribute

namespace

namespace

在名稱測試中指定的名稱可以是三種型別的其中一種:星號(*)、QName,或運算式 NCName:*。下表提供範例以說明這些名稱型別如何與指定的座標軸搭配運作,以尋找特定的節點集。

名稱

傳回

範例

* (星號)

適用於主要節點型別的任何節點。

ancestor::* 會選取內容節點的所有祖系。

attribute::* 會選取內容節點的所有屬性。

namespace::* 會選取內容節點的所有命名空間。

QName

適用於展開名稱與 QName 指定之展開名稱相同的任何主要型別節點。

child::para 會選取屬於內容節點子系的所有 <para> 項目節點。若內容節點沒有 <para> 子系,則會選取空的節點集。

NCName:*

適用於展開名稱具有命名空間 URI (NCName 亦展開為此 URI) 的任何主要型別節點。

child::ns:* 會選取命名空間中,具有 ns 前置詞的所有子項目節點。

備註

當節點測試為 QName 時,XPath 必須先根據 XML 檔案中的內容命名空間宣告展開 QName。這項展開的程序與開始與結束標記中之項目名稱的展開程序相同,差別在於,它不會使用以 xmlns 宣告的預設命名空間。若 QName 沒有前置詞,XPath 會尋找本機名稱符合指定 QName、且其命名空間 URI 為 Null 的節點。若 QName 的前置詞並未對應檔案中的任何內容命名空間宣告,則 QName 會造成錯誤。

當節點測試為 NCName:* 時,XPath 就會展開 NCName,使用的方式與它展開 QName 的前置詞時相同。同樣地,若 NCName 部分並未對應檔案中的內容命名空間宣告所含的任何前置詞,NCName:* 就會造成錯誤。

請參閱

參考

節點測試

節點類型測試

目標處理指示測試