XPath 1.0 のコア関数(記事一覧)。 今回は残りの XPath 関数、文字列関数を見ていきます。 XPath 1.0 仕様書「4.2 String Functions」参照。
関数のシグニチャ
関数名 | シグニチャ | 返り値の型 | 説明 |
---|---|---|---|
string() | string(object?) | string | 「XPath 1.0 でのデータ型のキャスト」参照 |
concat() | concat(string, string, string*) | string | 引数の文字列を連結した文字列を返す |
start-with() | starts-with(string, string) | boolean | 第1引数の文字列が第2引数の文字列で始まっているかどうかを返す |
contains() | contains(string, string) | boolean | 第1引数の文字列が第2引数の文字列を含むかどうかを返す |
substring-before() | substring-before(string, string) | string | 第1引数の文字列のうち、第2引数の文字列以前の部分文字列を返す |
substring-after() | substring-after(string, string) | string | 第1引数の文字列のうち、第2引数の文字列以降の部分文字列を返す |
substring() | substring(string, number, number?) | string | 第1引数の文字列に対して、第2、第3引数に応じて部分文字列を返す |
string-length() | string-length(string?) | number | 引数の文字列の長さを返す |
normalize-space() | normalize-space(string?) | string | 引数の文字列の空白を正規化して返す |
translate() | translate(string, string, string) | string | 第1引数の文字列に第2、第3引数に応じて置き換えを施す |
string() 関数
以前の記事を参照。
シグニチャ
string(object?) : string
concat() 関数
引数の文字列を連結した文字列を返す。
シグニチャ
concat(string, string, string*) : string
サンプルの XPath 式
concat("gr", "ooo", "vy")
サンプルの評価結果
"grooovy" (文字列)
starts-with() 関数
1引数の文字列が第2引数の文字列で始まっているなら true を、そうでないなら false を返す。
シグニチャ
starts-with(string, string) : boolean
サンプルの XPath 式
starts-with("grooovy", "gr")
サンプルの評価結果
true (ブール値)
contains() 関数
第1引数の文字列が第2引数の文字列を含むなら true を、そうでないなら false を返す。
シグニチャ
contains(string, string) : boolean
サンプルの XPath 式
contains("grooovy", "ooo")
サンプルの評価結果
true (ブール値)
substring-before() 関数
第1引数の文字列のうち、第2引数の文字列以前の部分文字列を返す。 もう少し正確には
- 第1引数の文字列に対して、第2引数の文字列が最初に現れた位置以前の部分文字列を返す。
- 第1引数の文字列が第2引数の文字列を含んでいないなら、空文字列を返す。
シグニチャ
substring-before(string, string) : string
サンプルの XPath 式
substring-before("grooovy", "ooo")
サンプルの評価結果
"gr"
substring-after() 関数
第1引数の文字列のうち、第2引数の文字列以降の部分文字列を返す。 もう少し正確には
- 第1引数の文字列に対して、第2引数の文字列が最初に現れた位置以降の部分文字列を返す。
- 第1引数の文字列が第2引数の文字列を含んでいないなら、空文字列を返す。
シグニチャ
substring-after(string, string) : string
サンプルの XPath 式
substring-after("grooovy", "ooo")
サンプルの評価結果
"vy" (文字列)
substring() 関数
第1引数に対して、第2引数が指定する位置から第3引数が指定する長さだけ取り出した部分文字列を返す。
- 第3引数が省略された場合は、第2引数が指定する位置から第1引数の最後までの部分文字列を返す。
- 文字列を指定する位置は1から始まる。
シグニチャ
substring(string, number, number?) : string
サンプルの XPath 式
substring("grooovy", 2)
substring("12345", 1.5, 2.6)
substring("12345", 0, 3)
substring("12345", 0 div 0, 3)
substring("12345", 1, 0 div 0)
substring("12345", -42, 1 div 0)
substring("12345", -1 div 0, 1 div 0)
サンプルの評価結果
"rooovy" (文字列)
"234" (文字列)
"12" (文字列)
"" (文字列)
"" (文字列)
"12345" (文字列)
"" (文字列)
string-length() 関数
引数の文字列の長さを返す。 引数が省略された場合は、コンテキスト・ノードの文字列表現(string() 関数による変換)が引数として渡される。
シグニチャ
string-length(string?) : number
サンプルの XPath 式
string-length("grooovy")
サンプルの評価結果
7 (数値)
normalize-space() 関数
引数の文字列の空白を正規化して返す。 正規化とは以下の操作をいう:
- 最初と最後の空白文字列を除去する
- 文字列中の空白文字列は1つのスペースで置き換える
引数が省略された場合は、コンテキスト・ノードの文字列表現(string() 関数による変換)が引数として渡される。
シグニチャ
normalize-space(string?) : string
サンプルの XPath 式
normalize-space(" gr ooo vy ")
サンプルの評価結果
"gr ooo vy" (文字列)
translate() 関数
第1引数の文字列に対して、第2引数に含まれる文字が現れた際に、その文字を第3引数の対応する位置にある文字で置き換えた文字列を返す。
- 第2引数の文字に対応する第3引数の文字がない(第2引数の文字列が第3引数の文字列よりも長い)場合、その第2引数の文字と一致する第1引数の文字は除去される。
- 第2引数に同じ文字が複数回現れた場合、最初の出現(位置)が置き換える文字を定める。
- 第2引数よりも第3引数の方が長い場合、その長い部分は無視される。
シグニチャ
translate(string, string, string) : string
サンプルの XPath 式
translate("grooovy", "grvy", "GRVY")
translate("grooovy", "ooo", "o")
translate("--aaa--", "abc-", "ABC")
サンプルの評価結果
"GRoooVY" (文字列)
"grooovy" (文字列)
"AAA" (文字列)
2つ目のサンプルは変換されない。

- 作者: エリック・T・レイ,Erik T.Ray,宮下尚,牧野聡,立堀道昭
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/06
- メディア: 単行本
- 購入: 3人 クリック: 62回
- この商品を含むブログ (21件) を見る