ms:string-compare 函式
執行字串比較。 這個函式是必要的,因為您無法使用 XPath,對兩個字串進行語法上的比較。
number ms:string-compare(string x, string y, [,string language _
[,string options]])
參數
string x
比較的字串值。 非字串值會先轉換成字串值後,再進行比較。string y
比較的字串值。 非字串值會先轉換成字串值後,再進行比較。string language[optional]
定義語言來決定排序順序。 這與 <xsl:sort> lang 屬性相似 (例如 "en-US" 或 "fr-CA")。 若省略這個參數,或者參數是空字串,則會以系統環境定義語言 (目前執行緒的語言)。string options[optional]
預設會以區分大小寫方式進行比較,小寫優先。選項
description
u
以區分大小寫方式進行比較,大寫優先。
i
對字元之間所有傳統上的差異,例如大小寫、假名和寬度,都會以不區分大小寫的方式進行比較 (字元寬度僅適用於某些語言)。
傳回值
傳回下列三個數值之一。
如果 |
範例函式傳回 |
---|---|
x < y |
-1 |
x = y |
0 |
x > y |
1 |
備註
按語法 (字典) 順序進行字串間的比較。 指定不支援的語言或選項將發生 Runtime 錯誤。 若為 MSXML 元件,會傳回 E_FAIL。
範例
下列程式碼範例將示範如何使用 ms:string-compare 函式比較兩個字串。 這個範例會將三個數字字串 ("1"、"2" 和 "3") 與 "2" 做比較。 比較結果會顯示於程式碼下方的表格。
XML 檔
<?xml version="1.0"?>
<string-sample>
<string>1</string>
<string>2</string>
<string>3</string>
</string-sample>
XSLT 檔 (translate.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/string-sample">
<xsl:for-each select="string">
<xsl:value-of select="ms:string-compare(., '2', 'en-US', 'i')"/>,
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
比較結果如下所示:
x, y |
結果 |
---|---|
"1" , "2" |
-1 |
"2" , "2" |
0 |
"3" , "2" |
1 |