當您建立 XPath 表示式時,您可以利用「函數參照」選項來指定節點集、Boolean、字串、數值、XSLT 和使用者定義的函數。使用函數可大幅增強 XPath 的功能。
部分函數需要資訊才能發揮作用。這些資訊是以插入圓括弧 ( ) 之間的參數形式代進函數。
如果要存取「函數參照」選項,請在 XPath 表示式精靈中按一下參照標籤。
您可以利用下列函數來處理節點集。
| 函數 | 傳回 |
|---|---|
| count( ) | 節點集中的節點數。 |
| last( ) | 環境定義節點清單的大小(即清單中的節點數)。 |
| position | 節點在節點集中的位置(按文件次序)。例如,position( ) = 2 會傳回節點集的第二個元素。 |
| id(string) | 包含文件中具指定字串之所有元素的節點集。 |
| local-name(node set ) | 節點集中第一個節點的名稱。如果沒有引數,它會傳回環境定義節點的本端名稱。 |
| namespace uri( ) | 環境定義節點的名稱空間 URI。 |
| name( ) | 環境定義節點的名稱,包括名稱空間字首。 |
您可以在 Boolean 數學運算中使用下列函數。
| 功能 | 傳回 |
|---|---|
| boolean ( ) | 評估表示式為 true 或 false。 |
| false ( ) | 一律傳回 false |
| true ( ) | 一律傳回 true |
| lang ( ) | 依據 xml:lang 屬性指定的環境定義節點語言是與引數字串指定的語言相同或是它的次語言,而傳回 true 或 false 。 |
| not ( ) | 否定 Boolena 表示式的值:如果表示式為 false 則為 true,反之則 false。 |
您可以利用下列函數來處理字串。
| 函數 | 傳回 |
|---|---|
| concat( ) | 其引數的連結。比方說,concat ('This is', ' ', 'my string') 會傳回 This is my string" |
| contains( ) | 指出某一個字串是否包含第二個字串的內容。比方說,contains ("This is my string", "is my") 會傳回 true,因為 "This is my string" 字串含有 "is my" 字串。 |
| normalize-space( ) | 使具有空格的引數字串標準化:去除其字首及字尾的空格,並以單一空格取代一連串的空格。 |
| starts-with( ) | 指示某個字串是否以第二個字串的內容作為開頭。比方說,starts-with ("This is my string", "This") 會傳回 true, 因為 "This is my string" 字串的開頭是 "This" 字串。 |
| string( ) | 將任何值轉換成字串。 |
| string-length( ) | 字串中的字元數目,包括空格。 |
| substring( ) | 從字串取得指定的字元數目。比方說,substring ('This is my string' ,9, 2 ) 會傳回 my,因為我們指定它從第九個字元開始且取得兩個字元。 |
| substring-after( ) | 特定字元後面的所有字元。 比方說,substring-after ('This is my string','s' ) 會傳回第一個 s 字母後面的所有字元,也就是 "is my string"。 |
| substring-before( ) | 特定字元前面的所有字元。 比方說,substring-before ('This is my string','s' ) 會傳回第一個 s 字母前面的所有字元,也就是 "Thi "。 |
| translate (string, to-match, replace-with ) | 將 string 中所有出現的子字串 to-match 取代為 replace-with 字串。 |
您可以利用下列函數來處理數字。
| 功能 | 傳回 |
|---|---|
| ceiling ( ) | 將表示式的值無條件進位成整數值。 |
| floor ( ) | 將表示式的值無條件捨去成整數值。 |
| round ( ) | 將表示式的值四捨五入成最接近的整數。 |
| number ( ) | 將 PCDATA 文字轉換成數值。 |
| sum ( ) | 加總節點中的所有數值。 |
XSLT 大量使用 XPath 語法,並支援 XPath 中定義的所有函數。此外,它還定義了十個額外的函數。
| 功能 | 傳回 |
|---|---|
| current( ) | 包含單一節點(即現行節點)的節點集。 |
| document( ) | 允許存取主要來源文件以外的 XML 文件。 |
| element-available( ) | 如果引數識別處理器可辨識的 XSLT,則為 true,否則為 false。 |
| format-number (number x, string pattern ) | 將 number x 轉換成使用第二個引數所指定之 string pattern 的字串。 |
| function-available( ) | 如果引數識別處理器函數庫中的函數,則為 true,否則為 false。 |
| generate-id( ) | 可作為 ID 類型屬性值的字串。 |
| key (string keyName, object value) | 節點集,其中包含來源文件中具有第一個引數指定名稱之索引鍵及第二個引數指定之值的所有節點。 |
| unparsed-entity-uri( ) | 具有來源文件 DTD 中宣告指定名稱之未剖析實體的 URI。 |
| system-property( ) | 具名內容的值。 |
這裡列出您可在 XPath 表示式中使用的所有使用者定義的函數。