サンプルで覚えるXSLTプログラミング

10. 文字列系関数

 文字列関数を使うと、文字の連結や抜き出しなど、XSLTプログラム上で文字列の自由な操作が可能になります。


文字列の連結
concat(string1, string2, string3, etc...)


引数 引数タイプ
string1
string2
string3
etc...
文字列

文字列を左から順番に連結させていきます。連結させる引数の数は2つ以上ならば制限はありません。結果は文字列で返されます。

例:concat('日本', 'Oracle')

上記 は、文字列“日本Oracle”を返します。


文字列の調査
contains(string, substring)


引数 引数タイプ
string 文字列
substring 文字列

stringにsubstringが含まれるかを返します。結果をbool代数で返します。

例:contains('I want to go to Paris', 'Paris')

上記はtureを返します。


数字のフォーマッティング
format-number(number, format) もしくは
format-number(number, format, format-type)

引数 引数タイプ
number 数値
format 文字列
format-type 文字列

number引数を、formatで指示されているように出力します。結果は、format-number(number, format) は文字列を、format-number(number, format, format-type)は数値を返します。

例:format-number(123456789, '#億####万####')

上記は“1億2345万6789”を返します。


空白の除去
normalize-space(string)

引数 引数タイプ
string 文字列

与えられた文字列から空白を取り除き、結果を文字列で返します。

例:normalize-space('I
missed the TV    show    last night')

上記は“I missed the TV show last night”を返します。


先頭文字列のチェック
starts-with(string, substring)


引数 引数タイプ
substring 文字列
string 文字列

string引数がsubstring引数から始まるかどうかをチェックします。結果はbool代数で返します。

例:starts-with('Technically speaking, the year 2000 is
not in the twenty-first century', 'Tech')

上記はtrueを返します。


文字列への変換
string(any)

引数 引数タイプ
any 指定なし

any引数を文字列に変換し、結果の文字列を返します。


文字列の長さを返す
string-length(string)


引数 引数タイプ
string 文字列

string引数の長さを返し、結果を数値で返します。

例:string-length('Oracle')

上記は6を返します。


文字列の抜き出し(1)
substring(string, start)もしくは
substring(string, start, length)

引数 引数タイプ
string 文字列
start 数値
length 数値

string引数に対して、startをオフセットした値からlengthまでのあいだの文字列を返します。lengthが指定されていない場合は、string引数の最後までを返します。

例:substring('I want to write a web page using XSLT', 2)

上記は“want to write a web page using XSLT”を返します。


文字列の抜き出し(2)
substring-after(string, substring)


引数 引数タイプ
string 文字列
substring 文字列

string引数の中からsubstring引数で指定された文字列が出現した場合、その後の文字列を返します。

例:substring-after('Today, scientists at NIH has announced that they have found a remarkable treatment to cure many types of cancer', 'that')

上記は、“they have found a remarkable treatment to cure many types of cancer”を返します。


文字列の抜き出し(3)
substring-before(string, substring)


引数 引数タイプ
string 文字列
substring 文字列

string引数の中から、substring引数に指定された文字列が見つかったとき、その前の文字列を返します。

例:substring-before('XSLT seems promising technology', 'seems')

上記は“XSLT”を返します。


文字の置換
translate(string, before, after)


引数 引数タイプ
string 文字列
before 文字列
after 文字列

string引数に対して、before引数で指定されている文字を、after引数で指定されているものに置換します。

例:translate('text', 'tx', 'Ts')

上記は“Test”を返します。


Index
サンプルで覚えるXSLTプログラミング
  1. XMLからHTMLへの変換
スタイルシートはどのように解釈されるか
  2. XPathの基礎知識
XML文書をツリー構造で見る
XPathの表記方法
  3. XSLTエレメントの概要
コラム XSLTプロセッサのインストール
  4. テンプレート系XSLTエレメント
テンプレートの定義
該当するテンプレートの適用
指定されたテンプレートの呼び出し
  5. 変数系XSLTエレメント
変数の定義1
変数の定義2
  6. 出力系XSLTエレメント
該当する表現の値を代入
エレメントノードの生成
属性ノードの生成
テキストノードの生成
コメントノードの生成
PI(processing-instruction)の生成
出力方法の指定
  7. フローコントロール系XSLTエレメント
ループ処理
条件分岐
IF文
  8. その他のXSLTエレメント
他のXSLファイルの読み込み
数の割り当て
  9.XSLT関数の概要
関数の主な分類
10. 文字列系関数
文字列の連結
文字列の調査
数字のフォーマッティング
空白の除去
……
  11. 数値計算系関数
切り上げ
表現の数を数える
切り下げ
数値型への変換
四捨五入
加算
  12. ノードに関する関数
  13. bool代数系関数
  14. その他の関数
  15. JavaによるXSLTの拡張
Built-inクラスの呼び出し
カスタムメイドの関数を作る

 

 



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間