《 這部分出自:http://www.mobansheji.com/
任何的程式設計語言或者是SQL語句都有内置的函數或方法,而強大靈活的xslt技術也是如此。熟練掌握XSLT的常用函數的用法,XSLT的應用将變得如此輕松,你會發現XSLT比想象中還要牛!以下是xslt數值的函數與xslt字元串函數的說明與參考示例。
1、xslt數值的函數:
(1)fn:number(arg) 傳回參數的數值。參數可以是布爾值、字元串或節點集。
示例:<xsl:value-of select="number('100')"/> 傳回 100
(2)fn:abs(num) 傳回參數的絕對值。
示例:<xsl:value-of select="number(-3.14)"/> 傳回 3.14
(3)fn:ceiling(num) 傳回大于 num 參數的最小整數。(注:這裡有些文章是寫錯了的,将大于寫成了小于)
示例:<xsl:value-of select="ceiling(3.14)"/> 傳回 4
(4)fn:floor(num) 傳回小于等于 num 參數的最大整數。
示例:<xsl:value-of select="floor(3.14)"/> 傳回 3
(5)fn:round(num) 把 num 參數舍入為最接近的整數。
示例:<xsl:value-of select="round(3.14)"/> 傳回 3
(6)round-half-to-even(num)
示例:<xsl:value-of select="round-half-to-even(0.5)"/> 傳回 0
示例:<xsl:value-of select="round-half-to-even(1.5)"/> 傳回 2
示例:<xsl:value-of select="round-half-to-even(2.5)"/> 傳回 2
2、xslt字元串函數
(1)fn:string(arg) 傳回參數的字元串值。參數可以是數字、邏輯值或節點集。
示例:<xsl:value-of select="string(314)"/> 傳回 "314"
(2)fn:codepoints-to-string(int,int,...) 根據代碼點序列傳回字元串。
示例:<xsl:value-of select="codepoints-to-string(84, 104, 233, 114, 232, 115, 101)"/> 傳回 'Thérèse'
(3)fn:string-to-codepoints(string) 根據字元串傳回代碼點序列。
示例:<xsl:value-of select="string-to-codepoints("Thérèse")"/> 傳回 84, 104, 233, 114, 232, 115, 101
(4)fn:codepoint-equal(comp1,comp2) 根據 Unicode 代碼點對照,如果 comp1 的值等于 comp2 的值,則傳回 true。(http://www.w3.org/2005/02/xpath-functions/collation/codepoint),否則返 回 false。
示例:<xsl:value-of select="compare('ghi', 'ghi')"/> 傳回 true
fn:compare(comp1,comp2)
fn:compare(comp1,comp2,collation) 如果 comp1 小于 comp2,則傳回 -1。如果 comp1 等于 comp2,則傳回 0。如果 comp1 大于 comp2,則傳回 1。(根據所用的對照規則)。
示例:<xsl:value-of select="compare('ghi', 'ghi')"/> 傳回 0
(5)fn:concat(string,string,...) 傳回字元串的拼接。
示例:<xsl:value-of select="concat('XPath ','is ','FUN!')"/> 傳回 'XPath is FUN!'
(6)fn:string-join((string,string,...),sep) 使用 sep 參數作為分隔符,來傳回 string 參數拼接後的字元串。
示例:<xsl:value-of select="string-join(('Www.', 'mobansheji', '.', 'com'), ' ')"/> 傳回 'www.mobansheji.com'
(7)fn:substring(string,start,len)
fn:substring(string,start) 傳回從start位置開始的指定長度的子字元串。第一個字元的下标是 1。如果省略 len 參數,則傳回從位置 start 到字元串末尾的子字元串。
示例:<xsl:value-of select="substring('www.mobansheji.com',1,4)"/> 傳回 'www.'
<xsl:value-of select="substring('www.mobansheji.com',4)"/> 傳回 'mobansheji.com'
(8)fn:string-length(string) fn:string-length() 傳回指定字元串的長度。如果沒有 string 參數,則傳回目前節點的字元串值的長度。
示例:<xsl:value-of select="substring('www.mobansheji.com')"/> 傳回 18
(9)fn:normalize-space(string) fn:normalize-space() 删除指定字元串的開頭和結尾的空白,并把内部的所有空白序列替換為一個,然後傳回結果。如果沒有 string 參數,則處理目前節點。。
示例:<xsl:value-of select="normalize-space(' www. mobansheji . com ')"/> 傳回 'www.mobansheji.com'
(10)fn:upper-case(string) 把 string 參數轉換為大寫。
示例:<xsl:value-of select="upper-case('The Xpath')"/> 傳回 'THE XPATH'
(11)fn:lower-case(string) 把 string 參數轉換為小寫。
示例:<xsl:value-of select="lower-case('The XML')"/> 傳回 'the xml'
(12)fn:translate(string1,string2,string3) 把 string1 中的 string2 替換為 string3。
示例:<xsl:value-of select="translate('Do you know xml and xpath?','xml','xslt')"/> 傳回 'Do you know xslt and xpath?'
示例:<xsl:value-of select="translate('12:30','03','54')"/> 傳回 '12:45'
(13)fn:escape-uri(stringURI,esc-res)
示例:<xsl:value-of select="escape-uri("http://example.com/test#car", true())"/> 傳回 "http%3A%2F%2Fexample.com%2Ftest#car"
示例:<xsl:value-of select="escape-uri("http://example.com/test#car", false())"/> 傳回 "http://example.com/test#car"
(14)fn:contains(string1,string2) 如果 string1 包含 string2,則傳回 true,否則傳回 false。
示例:<xsl:value-of select="contains('XML','XM')"/> 傳回 true
(15)fn:starts-with(string1,string2) 如果 string1 以 string2 開始,則傳回 true,否則傳回 false。
示例:<xsl:value-of select="starts-with('XML','X')"/> 傳回 true
(16)fn:ends-with(string1,string2) 如果 string1 以 string2 結尾,則傳回 true,否則傳回 false。
示例:<xsl:value-of select="ends-with('XML','X')"/> 傳回 false
(17)fn:substring-before(string1,string2) 傳回 string2 在 string1 中出現之前的子字元串。
示例:<xsl:value-of select="substring-before('www.mobansheji.com','.')"/> 傳回 'www'
(18)fn:substring-after(string1,string2) 傳回 string2 在 string1 中出現之後的子字元串。
示例:<xsl:value-of select="substring-before('www.mobansheji.com','.')"/> 傳回 'mobansheji.com'
(19)fn:matches(string,pattern) 如果 string 參數比對指定的模式,則傳回 true,否則傳回 false。
示例:<xsl:value-of select="matches("Merano", "ran")"/> 傳回 true
(20)fn:replace(string,pattern,replace) 把指定的模式替換為 replace 參數,并傳回結果。
示例:<xsl:value-of select="replace("The password is admin888", "8", "*")"/> 傳回 'The password is admin***'
(21)fn:tokenize(string,pattern)
示例:<xsl:value-of select="tokenize("XPath is fun", "/s+")"/> 傳回 ("XPath", "is", "fun") 》
這裡我舉一個例子,我的使用情況:
<xsl:variable name="responseHeader" select="/testResults/*[position()=1]/responseHeader" />
<xsl:variable name="afterDateString" select="substring-after($responseHeader,'Date:')" />
<xsl:variable name="dateTimeF" select="substring-before($afterDateString,'Connection:')" />
<xsl:variable name="dateTime" select="normalize-space($dateTimeF)" />