| last() | 評価中のコンテキストサイズを参照します |
| position() | 評価中のコンテキストの位置を 1 から始まる数値で参照します |
| count() | 引数で指定したシーケンス nodes に含まれる項目数を参照します |
| id() | 引数 ids で指定されてた ID に一致するノードを選択します |
| local-name() | 引数 nodes で指定したノード集合のうち最初のノードのローカル名を 返します |
| namespace-uri() | 引数 nodes で指定したノード集合のうち最初のノードの名前空間 URI を返します |
| name() | 引数 nodes で指定したノード集合のうち最初のノードの名前を 返します |
| string() | 引数 nodes で指定したオブジェクトを文字列に変換します |
| concat() | 全ての引数を文字列化し、連結して返します |
| starts-with() | 引数 str の文字列値が接頭辞 prefix から始まっているか どうかを判定します |
| contains() | 引数 str に substr が含まれているかどうかを判定します |
| substring-before() | 最初に見つかった位置より前の文字列を返します |
| substring-after() | 最初に見つかった位置より後ろの文字列を返します |
| substring() | 文字列中の部分文字列を返します |
| string-length() | 文字列の長さを返します |
| normalize-space() | 空白文字の正規化を行います |
| translate() | 文字列内の特定の文字を別の文字に置き換えます |
| boolean() | 引数 value をブール値に変換します |
| not() | 引数の flag 否定を返します |
| true() | 常に真を返します |
| false() | 常に偽を返します |
| lang() | 評価中のコンテキストにおける言語が引数と等しいか、またはそれに所属する 言語の場合に true を返します |
| number() | 引数 value を数値に変換します |
| sum() | 引数 nodes で指定されたノード集合のそれぞれの値を数値として合計して 返します |
| floor() | 引数 num 以下の値の中で最も大きい整数を返します (床関数) |
| ceiling() | 引数 num 以上の値の中で最も小さい整数を返します (天井関数) |
| round() | 引数 num に最も近い整数を返します |
last()
SYNOPSIS
| last() | |||
| as number | - 評価中のコンテキストサイズ。 | ||
説 明
評価中のコンテキストサイズを参照します。
例えば 3 つの要素を持つノードセットを評価している時のこの関数は 3 を返します。
これは position() と比較することで最後のノードかどうかを判定する
のにも使用できます (先頭は常に 1 であるため first() という関数は
存在しません)。
使用例
book という名前の子要素から最後の要素を参照します。
book[position()=last()]
position()
SYNOPSIS
| position() | |||
| as number | - 現在評価している位置。 | ||
説 明
評価中のコンテキストの位置を 1 から始まる数値で参照します。 ループ内で出力項目の番号を表示したり、最初・最後の判定を行うために使用します。
使用例
book という名前の子要素から最後の要素を参照します。
book[position()=last()]
count(nodes)
SYNOPSIS
| count( | |||
| nodes | as node-set | - 項目数を参照するシーケンス (ノード集合)。 | |
| ) as number | - シーケンス内の項目数。 | ||
説 明
引数で指定したシーケンス nodes に含まれる項目数を参照します。
空のシーケンスを指定した場合は 0 を返します。
使用例
chapter 要素の下に 4 つの section 要素が存在する場合、以下は
整数 4 を返します。
count(chapter/section)
id(ids)
SYNOPSIS
| id( | |||
| ids | as object | - 取得する ID。 | |
| ) as node-set | - 指定した ID のいずれかを持つノードの集合。 | ||
説 明
引数 ids で指定されてた ID に一致するノードを選択します。
空白で区切ることで複数の ID を指定することができます。この場合、指定した
ID のいずれかと一致する ID を持つノードの集合を返します。
引数に集合を指定した場合、それぞれの項目を文字列化して空白で連結した上で 評価を行います。
使用例
username" という ID を持つ要素の first-name 属性値を参照します。
id("username")/@first-name
local-name(nodes)
SYNOPSIS
| local-name( | |||
| nodes | as node-set? | - ローカル名を参照するノード。 | |
| ) as string | - ノードのローカル名。 | ||
説 明
引数 nodes で指定したノード集合のうち最初のノードのローカル名を
返します。ローカル名とは名前空間接頭辞の付けられていない名前です。
集合が空の場合は長さ 0 の文字列を返します。
引数を省略した場合は現在のコンテキストに対するローカル名を返します。
使用例
appendix" の場合に true となります。
local-name(..)='appendix'
namespace-uri(nodes)
SYNOPSIS
| namespace-uri( | |||
| nodes | as node-set? | - 名前空間 URI を参照するノード。 | |
| ) as string | - ノードの名前空間 URI。 | ||
説 明
引数 nodes で指定したノード集合のうち最初のノードの名前空間
URI を返します。集合が空の場合や名前空間を持たない場合は長さ 0 の文字列を
返します。
引数を省略した場合は現在のコンテキストに対する名前空間 URI を返します。
使用例
http://lab.moyo.biz/ns/foo"
を持つノード集合を参照します。
*[namespace-uri()='http://lab.moyo.biz/ns/foo']
name(nodes)
SYNOPSIS
| name( | |||
| nodes | as node-set? | - 名前を参照するノード。 | |
| ) as string | - ノードの名前。 | ||
説 明
引数 nodes で指定したノード集合のうち最初のノードの名前を
返します。ノードが名前空間を持つ場合はその接頭辞が付いた文字列 (QName 形式)
となります。集合が空の場合は長さ 0 の文字列を返します。要素・属性以外の
ノードに対しては local-name() が返す値と同じです。
引数を省略した場合は現在のコンテキストに対する名前を返します。
string(nodes)
SYNOPSIS
| string( | |||
| nodes | as object? | - 文字列値を参照するノード集合。 | |
| ) as string | - 引数の文字列値。 | ||
説 明
引数
| 型 | 値 | 返値 |
|---|---|---|
| ノード集合 | 先頭のノードの文字列値 | |
| number | NaN | "NaN" |
| number | 正のゼロ | "0" |
| number | 負のゼロ | "0" |
| number | 正の無限大 | "Infinity" |
| number | 負の無限大 | "-Infinity" |
| ブール値 | 真 | "true" |
| ブール値 | 偽 | "false" |
引数を省略した場合は現在のコンテキストに対する文字列値を返します。
format-number() concat(str)
SYNOPSIS
| concat( | |||
| str | as string{2,} | - 連結する項目。 | |
| ) as string | - 全ての引数を連結した文字列。 | ||
説 明
全ての引数を文字列化し、連結して返します。引数は 2 つ以上指定する 必要があります。
使用例
ABC", "012", "XYZ" を連結します。
concat("ABC","012","XYZ")
starts-with(str,prefix)
SYNOPSIS
| starts-with( | |||
| str | as string, | - 判定する文字列。 | |
| prefix | as string | - 一致させる接頭辞。 | |
| ) as boolean | - 先頭が一致する場合 true。 | ||
説 明
引数
使用例
000" から始まる商品要素を参照します。
product[starts-with(@code,"000")]
contains(str,substr)
SYNOPSIS
| contains( | |||
| str | as string, | - 判定する文字列。 | |
| substr | as string | - 部分文字列。 | |
| ) as boolean | - 部分文字列が含まれている場合 true。 | ||
説 明
引数
使用例
000" から始まる商品要素を参照します。
product[starts-with(@code,"000")]
substring-before(str,substr)
SYNOPSIS
| substring-before( | |||
| str | as string, | - | |
| substr | as string | - | |
| ) as string | - | ||
説 明
最初に見つかった位置より前の文字列を返します。
使用例
substring-after(str,substr)
SYNOPSIS
| substring-after( | |||
| str | as string, | - | |
| substr | as string | - | |
| ) as string | - | ||
説 明
最初に見つかった位置より後ろの文字列を返します。
使用例
substring(str,substr,substr)
SYNOPSIS
| substring( | |||
| str | as string, | - | |
| substr | as number, | - | |
| substr | as number? | - | |
| ) as string | - | ||
説 明
文字列中の部分文字列を返します。
使用例
string-length(str)
SYNOPSIS
| string-length( | |||
| str | as string? | - | |
| ) as number | - | ||
説 明
文字列の長さを返します。
値を省略した場合は現在のコンテキストの文字列値を評価します。
使用例
normalize-space(str)
SYNOPSIS
| normalize-space( | |||
| str | as string? | - | |
| ) as number | - | ||
説 明
空白文字の正規化を行います。引数
値を省略した場合は現在のコンテキストの文字列値を評価します。
使用例
translate(str,before,after)
SYNOPSIS
| translate( | |||
| str | as string, | - | |
| before | as string, | - | |
| after | as string | - | |
| ) as string | - | ||
説 明
文字列内の特定の文字を別の文字に置き換えます。
使用例
translate("bar","abc","ABC") → BAr
boolean(value)
SYNOPSIS
| boolean( | |||
| value | as object | - ブール値に変換する値。 | |
| ) as boolean | - 引数に対応するブール値。 | ||
説 明
引数
| 型 | false | true |
|---|---|---|
| ノード集合 | 0個 | 1個以上 |
| number | 0, -0, NaN | それ以外 |
| string | 長さが 0 | 長さが 1 以上 |
使用例
not(flag)
SYNOPSIS
| not( | |||
| flag | as boolean | - 否定するブール代数値。 | |
| ) as boolean | - 引数の否定。 | ||
説 明
引数の
true()
SYNOPSIS
| true() | |||
| as boolean | - 常に true。 | ||
説 明
常に真を返します。定数として使用します。
false()
SYNOPSIS
| false() | |||
| as boolean | - 常に false。 | ||
説 明
常に偽を返します。定数として使用します。
lang(lang)
SYNOPSIS
| lang( | |||
| lang | as string | - 判定する言語。 | |
| ) as boolean | - 一致するかサブ言語の場合 true。 | ||
説 明
評価中のコンテキストにおける言語が引数と等しいか、またはそれに所属する
言語の場合に true を返します。XML における言語は xml:lang 属性で
示される 2 文字または 3 文字の ISO 639 言語コード、およびそれとハイフンで
連結された省略可能な ISO 3166-1 国コードです。比較は大文字と小文字を区別
しません。
評価中のノードが xml:lang 属性を持たない場合、XML のツリーを先祖
(根っこ) 側にたどり最初に見つかった xml:lang 属性が適用されます。
使用例
xml:lang="ja-JP" の言語が設定してある場合:
lang("ja") → true
lang("JA") → true
lang("ja-jp") → true
lang("en") → false
number(value)
SYNOPSIS
| number( | |||
| value | as object? | - 数値に変換するオブジェクト。 | |
| ) as number | - 引数の数値。 | ||
説 明
引数
数値に変換可能な文字列の正規表現パターンは以下の通りです。値を数値に変換 できない場合は NaN を返します。
\s*-?(\d+(.\d*)?|.\d+)\s*
値の省略は現在評価中のコンテキストノードを渡すのと同じです。
使用例
sum(nodes)
SYNOPSIS
| sum( | |||
| nodes | as node-set | - 合計値を算出するノード集合。 | |
| ) as number | - ノード集合の値の合計値。 | ||
説 明
引数 nodes で指定されたノード集合のそれぞれの値を数値として合計して
返します。集合内に NaN が含まれている場合は NaN を返します。
ノード集合のそれぞれの項目は、加算をサポートする数値か数値の派生型である 必要があります。
使用例
product という要素の price 属性値を合計します。
sum(product/@price)
floor(num)
SYNOPSIS
| floor( | |||
| num | as number | - オペランド。 | |
| ) as number | - 引数以下で最も大きい整数。 | ||
説 明
引数
使用例
floor(2) → 2 floor(1.8) → 1 floor(-1.8) → -2
ceiling(num)
SYNOPSIS
| ceiling( | |||
| num | as number | - オペランド。 | |
| ) as number | - 引数以上で最も小さい整数値。 | ||
説 明
引数
使用例
ceiling(2) → 2 ceiling(1.8) → 2 ceiling(-1.8) → -1
round(num)
SYNOPSIS
| round( | |||
| num | as number | - 丸めを行う数値。 | |
| ) as number | - 整数に丸められた数値。 | ||
説 明
引数
使用例
round(3.14) → 3 round(1.5) → 2 round(-3.5) → -3