最新のWeb開発のチュートリアル
 

XSLT XPathの、およびXQuery関数


XSLT 2.0、XPath 2.0の、とXQuery 1.0は、同じ機能のライブラリを共有しています。


関数リファレンス

関数の名前空間のデフォルトのプレフィックスはFNです。
関数の名前空間のURIは次のとおりです。http://www.w3.org/2005/xpath-functions

Tip:このようFNなどの接頭辞、::関数は、多くの場合、FNと呼ばれているstring() しかし、FN以来:名前空間のデフォルトの接頭辞である呼び出されたときに、関数名をプレフィックスとして追加する必要はありません。

アクセサ関数

説明
fn:node- name( node ) 引数ノードのノード名を返します。
fn: nilled( node ) 引数ノードがnilledされているかどうかを示すブール値を返します。
fn: data( item.item,... ) アイテムのシーケンスを取り、アトミック値のシーケンスを返します
fn:base- uri()
fn:base- uri( node )
現在または指定されたノードのベースURIプロパティの値を返します。
fn:document- uri( node ) 指定されたノードの文書-uriプロパティの値を返します。

エラーおよびトレース機能

説明
fn: error()
fn: error( error )
fn: error( error,description )
fn: error( error,description,error-object )
例: error(fn:QName('http://example.com/test', 'err:toohigh') 'エラー:価格が高すぎます')

結果:戻り値http://example.com/test#toohighと文字列"Error: Price is too high"外部処理環境へ

fn: trace( value,label ) デバッグクエリに使用

数値に関数

説明
fn: number( arg ) 引数の数値を返します。 引数はブール値、文字列、またはノードセットすることができ

例: number('100')
結果:100

fn: abs( num ) 引数の絶対値を返します。

例: abs(3.14)
結果:3.14

例: abs(-3.14)
結果:3.14

fn: ceiling( num ) 数引数より大きい最小の整数を返します。

例: ceiling(3.14)
結果:4

fn: floor( num ) 数引数より大きくない最大の整数を返します。

例: floor(3.14)
結果:3

fn: round( num ) 最も近い整数に数引数を丸め

例: round(3.14)
結果:3

fn:round-half-to- even() 例:丸半対even(0.5)
結果:0

例:ラウンド半対even(1.5)
結果:2

例:ラウンド半対even(2.5)
結果:2

文字列の機能

説明
fn: string( arg ) 引数の文字列値を返します。 引数は、数、ブール値、またはノードセットとすることができます

例: string(314)
結果: "314"

fn:codepoints-to- string(( int,int,... ) ) Unicode標準コードポイントの配列から文字列を作成

例:コードポイント・ツー・string((84, 104, 233, 114, 232, 115, 101)
結果: 'Thrse'

fn:string-to- codepoints( string ) 文字列からユニコード標準コードポイントのシーケンスを返します。

例:文字列・ツー・codepoints("Th r se")
結果: (84, 104, 233, 114, 232, 115, 101)

fn:codepoint- equal( comp1,comp2 ) COMP1の値は、Unicodeコードポイント照合に従って、COMP2の値に等しい場合にtrueを返し(http://www.w3.org/2005/02/xpath-functions/collation/codepoint)それ以外の場合は偽を返し、
fn: compare( comp1,comp2 )
fn: compare( comp1,comp2,collation )
COMP1はCOMP2より大きい場合COMP1はCOMP2、又は1に等しい場合COMP1はCOMP2、0未満である場合には-1を返す(使用される照合のルールに従って)

例: compare('ghi', 'ghi')
結果:0

fn: concat( string,string,... ) 文字列の連結を返します。

例: concat('XPath ','is ','FUN!')
結果:「XPathは楽しいです!」

fn:string- join( (string,string,...) ,sep) 文字列引数を連結し、セパレータとして9月の引数を使用して作成した文字列を返します。

例:ストリング] join(('We', 'are', 'having', 'fun!') 「'、)
結果:「私たちは楽しんでいます! "

例:ストリング] join(('We', 'are', 'having', 'fun!')
結果: 'Wearehavingfun!'

例:ストリング] join(() 、 '9月に')
結果:「」

fn: substring( string,start,len )
fn: substring( string,start )
指定された長さの開始位置から部分文字列を返します。 最初の文字のインデックスは1です。長さは、それが最後に開始位置から部分文字列を返す省略された場合

例: substring('Beatles',1,4)
結果:「ビート」

例: substring('Beatles',2)
結果: 'eatles'

fn:string- length( string )
fn:string- length()
指定した文字列の長さを返します。 何文字列引数がない場合には、現在のノードの文字列値の長さを返します

例:はstring- length('Beatles')
結果:7

fn:normalize- space( string )
fn:normalize- space()
指定された文字列から先頭と末尾のスペースを削除し、そして1と結果を返すと、ホワイトスペースのすべての内部シーケンスを置き換えます。 何の文字列引数がない場合には、現在のノードで同じことを行います

例:normalize- space(' The XML ')
結果:「XML」

fn:normalize- unicode()
fn:upper- case( string ) 文字列引数は、大文字に変換します

例:大文字case('The XML')
結果:「XML」

fn:lower- case( string ) 文字列引数は、小文字に変換します

例:小文字case('The XML')
結果:「XML」

fn: translate( string1,string2,string3 ) string3の文字とstring2の中の文字を置換することによって、文字列1を変換

例: translate('12:30','30','45')
結果:'12:45'

例: translate('12:30','03','54')
結果:'12:45'

例: translate('12:30','0123','abcd')
結果: 'BC:ダ'

fn:escape- uri( stringURI,esc-res ) 例:escape- uri("http://example.com/test#car", true()
結果: "http%3A%2F%2Fexample.com%2Ftest#car"

例:escape- uri("http://example.com/test#car", false()
結果: "http://example.com/test#car"

例:エスケープ-URI ("http://example.com/~b b ", false()
結果: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) 文字列1が文字列2が含まれている場合、それ以外の場合はfalseを返し、trueを返します

例: contains('XML','XM')
結果:真

fn:starts- with( string1,string2 ) 文字列1が文字列2で始まっている場合、それ以外の場合はfalseを返し、trueを返します

例:starts- with('XML','X')
結果:真

fn:ends- with( string1,string2 ) 文字列1が文字列2で終了した場合、それ以外の場合はfalseを返し、trueを返します

例:ends- with('XML','X')
結果:偽

fn:substring- before( string1,string2 ) string2のがそれで発生する前に、文字列1の開始を返します。

例:substring- before('12/10','/')
結果: '12'

fn:substring- after( string1,string2 ) string2のがそれで発生した後に文字列1の残りの部分を返します。

例:substring- after('12/10','/')
結果: '10'

fn: matches( string,pattern ) 文字列引数がパターンに一致した場合、それ以外の場合はfalseを返し、trueを返します

例: matches("Merano", "ran")
結果:真

fn: replace( string,pattern,replace ) 置き換える引数で指定したパターンに置き換えることによって作成された文字列を返します。

例: replace("Bella Italia", "l" , "*")
結果:「* **イタうIA」

例: replace("Bella Italia", "l" , "")
結果:「ビーItaia」

fn: tokenize( string,pattern ) 例: tokenize("XPath is fun", "\s+")
結果: ("XPath", "is" , "fun")

anyURIのための関数

説明
fn:resolve- uri( relative,base )

ブール値の機能

説明
fn: boolean( arg ) 数値、文字列、またはノードセットのブール値を返します。
fn: not( arg ) 引数は、最初印加することにより、ブール値に還元されるboolean()関数。 ブール値がtrueの場合ブール値がfalse、およびfalseの場合にtrueを返します

例: not(true()
結果:偽

fn: true() ブール値は、trueを返します

例: true()
結果:真

fn: false() ブール値がfalseを返します。

例: false()
結果:偽

持続時間、日付と時刻の関数

持続時間、日付と時刻の成分抽出機能

説明
fn: dateTime( date,time ) 日付と時刻に引数を変換します
fn:years-from- duration( datetimedur ) 引数の値の正規字句表現に年コンポーネントを表す整数値を返します
fn:months-from- duration( datetimedur ) 引数の値の正規字句表現の月コンポーネントを表す整数値を返します
fn:days-from- duration( datetimedur ) 引数の値の正規字句表現における日コンポーネントを表す整数値を返します
fn:hours-from- duration( datetimedur ) 引数の値の正規字句表現に時間コンポーネントを表す整数値を返します
fn:minutes-from- duration( datetimedur ) 引数の値の正規字句表現で分コンポーネントを表す整数値を返します
fn:seconds-from- duration( datetimedur ) 引数の値の正規字句表現の秒コンポーネントを表し、小数点を返します。
fn:year-from- dateTime( datetime ) 引数のローカライズされた値で年コンポーネントを表す整数を返します。

例:年-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10")
結果:2005

fn:month-from- dateTime( datetime ) 引数のローカライズされた値の月コンポーネントを表す整数を返します。

例:月-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10")
結果:01

fn:day-from- dateTime( datetime ) 引数のローカライズされた値で日コンポーネントを表す整数を返します。

例:1日-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10")
結果:10

fn:hours-from- dateTime( datetime ) 引数のローカライズされた値の時間コンポーネントを表す整数値を返します

例:時間-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10")
結果:12

fn:minutes-from- dateTime( datetime ) 引数のローカライズされた値の分コンポーネントを表す整数値を返します

例:分-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10")
結果:30

fn:seconds-from- dateTime( datetime ) 引数のローカライズされた値の秒コンポーネントを表し、小数点を返します。

例:秒-from- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")
結果:0

fn:timezone-from- dateTime( datetime ) もしあれば、引数のタイムゾーンの部分を返します。
fn:year-from- date( date ) 引数のローカライズされた値の年を表す整数を返します。

例:年-from- date(xs:date("2005-04-23")
結果:2005

fn:month-from- date( date ) 引数のローカライズされた値の月を表す整数を返します。

例:月-from- date(xs:date("2005-04-23")
結果:4

fn:day-from- date( date ) 引数のローカライズされた値の日を表す整数を返します。

例:1日-from- date(xs:date("2005-04-23")
結果:23

fn:timezone-from- date( date ) もしあれば、引数のタイムゾーンの部分を返します。
fn:hours-from- time( time ) 引数のローカライズされた値の時間コンポーネントを表す整数値を返します

例:時間-from- time(xs:time("10:22:00")
結果:10

fn:minutes-from- time( time ) 引数のローカライズされた値の分コンポーネントを表す整数値を返します

例:分-from- time(xs:time("10:22:00")
結果:22

fn:seconds-from- time( time ) 引数のローカライズされた値の秒コンポーネントを表す整数を返します。

例:秒-from- time(xs:time("10:22:00")
結果:0

fn:timezone-from- time( time ) もしあれば、引数のタイムゾーンの部分を返します。
fn:adjust-dateTime-to- timezone( datetime,timezone ) タイムゾーンの引数が空の場合、それはタイムゾーンなしのdateTimeを返します。 それ以外の場合は、タイムゾーンでdateTimeのを返します。
fn:adjust-date-to- timezone( date ,timezone ) タイムゾーンの引数が空の場合、それはタイムゾーンなしの日付を返します。 それ以外の場合は、タイムゾーンと日付を返します。
fn:adjust-time-to- timezone( time ,timezone ) タイムゾーンの引数が空の場合、それはタイムゾーンなしで時間を返します。 それ以外の場合は、タイムゾーンとの時間を返します。

QNameに関連する関数

説明
fn: QName()
fn:local-name-from- QName()
fn:namespace-uri-from- QName()
fn:namespace-uri-for- prefix()
fn:in-scope- prefixes()
fn:resolve- QName()

ノードでの機能

説明
fn: name()
fn: name( nodeset )
指定されたノードセットの現在のノードまたは最初のノードの名前を返します。
fn:local- name()
fn:local- name( nodeset )
現在のノードの名前または指定したノード集合内の最初のノードを返します - 名前空間接頭辞なし
fn:namespace- uri()
fn:namespace- uri( nodeset )
現在のノードまたは指定したノード集合内の最初のノードの名前空間URIを返します。
fn: lang( lang ) 現在のノードの言語が指定した言語の言語と一致する場合はtrueを返します

例: Lang("en")のために真であります
<P XML:LANG = "EN"> ... </ P>

例: Lang("de")のために偽であります
<P XML:LANG = "EN"> ... </ P>

fn: root()
fn: root( node )
現在のノードまたは指定が属するツリーのルートを返します。 これは通常、ドキュメント・ノードになります

配列に機能

シーケンス上の一般的な機能

説明
fn:index- of( (item,item,...) ,searchitem) searchitem引数に等しい項目のシーケンス内の位置を返します。

例:索引の((15, 40, 25, 40, 10) 、40)
結果: (2, 4)

例:索引の(("a", "dog" , "and" , "a" , "duck") "A")
結果(1, 4)

例:索引の((15, 40, 25, 40, 10) 、18)
結果: ()

fn: remove( (item,item,...) ,position) 取り出し位置引数で指定された項目と - 項目引数の値から構築新しいシーケンスを返します。

例: remove(("ab", "cd" , "ef") 、0)
結果: ("ab", "cd" , "ef")

例: remove(("ab", "cd" , "ef") 、1)
結果: ("cd", "ef")

例: remove(("ab", "cd" , "ef") 、4)
結果: ("ab", "cd" , "ef")

fn: empty( item,item,... ) 引数の値が空のシーケンスである場合に、それ以外の場合はfalseを返し、trueを返します

例: empty(remove(("ab", "cd") 、1))
結果:偽

fn: exists( item,item,... ) 引数の値が空のシーケンスでない場合、それ以外の場合はfalseを返し、trueを返します

例: exists(remove(("ab") 、1))
結果:偽

fn:distinct- values( (item,item,...) ,collation) 戻り値のみの異なる(different)

例:distinct- values((1, 2, 3, 1, 2)
結果: (1, 2, 3)

fn:insert- before( (item,item,...) ,pos,inserts) POS引数で指定された位置に挿入された挿入引数の値を持つ - 項目引数の値から構築新しいシーケンスを返します。

例:インサートbefore(("ab", "cd") 、0、 "GH")
結果: ("gh", "ab" , "cd")

例:インサートbefore(("ab", "cd") 、1、 "GH")
結果: ("gh", "ab" , "cd")

例:インサートbefore(("ab", "cd") 、2、 "GH")
結果: ("ab", "gh" , "cd")

例:インサートbefore(("ab", "cd") 、5、 "GH")
結果: ("ab", "cd" , "gh")

fn: reverse( (item,item,...) ) 指定された項目の逆の順序を返します。

例: reverse(("ab", "cd" , "ef")
結果: ("ef", "cd" , "ab")

例: reverse(("ab")
結果: ("ab")

fn: subsequence( (item,item,...) ,start,len) start引数とlen引数で指定した項目の数を継続することにより、指定された位置から項目のシーケンスを返します。 最初の項目は、位置1に配置されています

例: subsequence(($item1, $item2, $item3,...) 、3)
結果: ($item3, ...)

例: subsequence(($item1, $item2, $item3, ...) 、2、2)
結果: ($item2, $item3)

fn: unordered( (item,item,...) ) 実装に依存するためにアイテムを返します。

配列のカーディナリティをテストする関数

説明
fn:zero-or- one( item,item,... ) それは、ゼロまたは1つのアイテムが含まれている場合、それ以外の場合はエラーを発生させ、引数を返します。
fn:one-or- more( item,item,... ) それは1つ以上の項目を含んでいる場合、それ以外の場合はエラーを発生させ、引数を返します。
fn:exactly- one( item,item,... ) それは正確に一つの項目が含まれている場合、それ以外の場合はエラーを発生させ、引数を返します。

連合、交差点及び除き、等しいです

説明
fn:deep- equal( param1,param2,collation ) それ以外の場合はfalseを返し、PARAM1およびPARAM2が互いに深等しい場合はtrueを返します。

集計関数

説明
fn: count( (item,item,...) ) ノードの数を返します。
fn: avg( (arg,arg,...) ) 引数の値の平均値を返します。

例: avg((1,2,3)
結果:2

fn: max( (arg,arg,...) ) 他よりも大きい引数を返します。

例: max((1,2,3)
結果:3

例: max(('a', 'k')
結果: 'K'

fn: min( (arg,arg,...) ) 他の人よりも少ない引数を返します。

例: min((1,2,3)
結果:1

例: min(('a', 'k')
結果: 'A'

fn: sum( arg,arg,... ) 指定されたノード・セット内の各ノードの数値の合計を返します。

シーケンスを生成する機能

説明
fn: id( (string,string,...) ,node) 文字列引数で指定された値のうちの1つまたは複数の値に等しいID値を持つ要素ノードの配列を返します
fn: idref( (string,string,...) ,node) 文字列引数で指定された値のうちの1つまたは複数の値に等しいIDREF値を有する要素または属性ノードの配列を返します
fn: doc( URI )
fn:doc- available( URI ) 場合にtrueを返しますdoc()関数は、ドキュメントのノードを返し、それ以外の場合はfalseを返し、
fn: collection()
fn: collection( string )

コンテキスト機能

説明
fn: position() 現在処理されているノードのインデックス位置を返します。

例://ブック[ position() <= 3]
結果:最初の3本の要素を選択します

fn: last() 処理されたノードリスト内の項目数を返します。

例://ブック[ last() ]
結果:最後のbook要素を選択

fn:current- dateTime() 現在のDateTimeを返します(with timezone)
fn:current- date() 現在の日付を返します(with timezone)
fn:current- time() 現在の時刻を返します(with timezone)
fn:implicit- timezone() 暗黙のタイムゾーンの値を返します。
fn:default- collation() デフォルト照合の値を返します。
fn:static-base- uri() ベースURIの値を返します。

XSLT機能

また、内蔵のXSLT関数以下があります。

説明
current() 現在のノードを返します。
document() 外部のXML文書内のノードにアクセスするために使用します
element- available() 指定された要素は、XSLTプロセッサによってサポートされているかどうかをテスト
format- number() 文字列に数値を変換
function- available() 指定された機能は、XSLTプロセッサによってサポートされているかどうかをテスト
generate- id() 一意的に指定されたノードを識別する文字列値を返し
key() 指定されたインデックス用いてノードセットを返す<xsl:key>要素
system- property() システムプロパティの値を返します。
unparsed-entity- uri() 解析対象外実体のURIを返します。