translate 関数
最初の引数文字列のうち 2 番目の引数文字列に含まれている文字を 3 番目の引数文字列のそれに対応する位置の文字で置き換えたものを返します。
string translate(string, string, string)
解説
この関数では、最初の引数に対して文字のマッピングを行います。 2 番目と 3 番目の引数でマッピングの方式を定義します。
次の関数の呼び出しでは、"BAr" が返ります。
translate("bar","abc","ABC")
2 番目の引数文字列が 3 番目の引数文字列よりも長いために、2 番目の引数文字列に含まれている文字が 3 番目の引数文字列の対応する位置にない場合は、最初の引数文字列に含まれているその文字が削除されます。
次の関数の呼び出しでは、"AAA" が返されます。
translate("--aaa--","abc-","ABC")
2 番目の引数文字列内に 1 つの文字が複数回出現する場合は、最初の文字が置換文字になります。 3 番目の引数文字列が 2 番目の引数文字列より長い場合は、余分な文字が無視されます。
引数が string 型でない場合は、その引数が string() 関数を使って文字列に変換された後、その変換の結果が評価されます。
注意 : |
---|
この関数にノード セットを引数として渡し、文字列変換を行うと、予期しない結果が生じることがあります。詳細については、「string 関数」を参照してください。 |
この関数では、大文字と小文字が区別されます。
例
上で説明した translate()
式の例を示します。
XML ファイル
なし。XSLT ファイルは自身を呼び出します。
XSLT ファイル (translate.xsl)
書式付き出力
translate("bar","abc","ABC") = BAr translate("--aaa--","abc-","ABC") = AAA
プロセッサ出力
<?xml version="1.0" encoding="UTF-16"?> translate("bar","abc","ABC") = BAr<br />translate("--aaa--","abc-","ABC") = AAA