XMLにはXPath表現式やFLWOR表現式で使用できる様々な組み込み関数があります。 使用するXMLプロセッサによってどのような関数が利用できるかは異なります。
number avg(node)
ノードnodeの値(数値)の平均値を返します。
let $a = avg(/bookshelf/book/price)
return <result>{$a}<result>
少数点以下を切り上げた値を返します。
number ceiling(number)
node collection (URL)
ドキュメントのノードを返します。URLには、XML文書のURIを指定します。
collection("http://www.sample.org/sample.xml")
string concat(string1, string2, ...)
string1、string2を連結した文字列を返します。
boolean contains(string, substring)
文字列 string が文字列 substring を含んでいる場合に true を返します。
number count(node)
出現するノードの数を返します。nodeには数を数えるノードをXPath表現で指定します。
次にノード/bookshelf/bookの数を変数number_of_bookに代入するXSLTの例を示します。
<xsl:variable name="number_of_book" select="count(/bookshelf/book)">
次にノード/bookshelf/bookの数を返すFLWOR表現式の例を示します。
let $number_of_book:=count(/bookshelf/book)
return $number_of_book
node current()
現在のノードを返します。
node distinct-values(node)
distinct-values関数は入力としてノードのシーケンスを取り、値の重複が取り除かれたシーケンスを返します。
for $a in distinct-values(/book/author)
return $a
ドキュメントのノードを返します。
node document(path)
node document(URI)
pathには、XML文書のファイルパスを指定します。
次に、関数documentの使用例を示します。
document("sample.xml")
要素が利用可能であればtrue、利用不可能であればfalseを返す。
boolean element-available(string)
element-available("xsl:template")
boolean ends-with(string, substring)
文字列stringが文字列substringで始終わる文字列であればtrueを返し、そうでなければfalseを返します。
number floor(number)
少数点以下を切り下げた値を返します。
input()
アプリケーションがXML文書をユーザーに指定させる方法を有している場合は、ドキュメントのノードを返します。入力がない場合はdynamic errorを発生します。
number last()
処理するシーケンスの数を示す整数値を返します。
number positon()
シーケンスの現在のコンテキスト位置を示す整数値を返します。
number round(number)
小数点以下を四捨五入した値を返します。
round(book/price)
boolean starts-with(string, substring)
文字列stringが文字列substringで始まる文字列であればtrueを返し、そうでなければfalseを返します。
number sum(node)
ノードnodeの値(数値)の総和を返します。
let $s = sum(/bookshelf/book/price)
return <result>{$s}<result>