XPath チュートリアルlogin
XPath チュートリアル
著者:php.cn  更新時間:2022-04-20 14:10:21

XPath、XQuery、および XSLT 関数


XPath、

関数リファレンスマニュアル


アクセス 関数名前空間のデフォルトのプレフィックスは fn です:
  • エラーとトレース

  • 文字列

AnyURI
  • ロジック

  • 期間/日付/時刻

  • Q名前

ノード
  • シーケンス

  • コンテキスト

関数名前空間の URI は次のとおりです: http://www.w3.org/2005/xpath-functions

lamp.gif

Access function

lamp.gif

Name

Descriptionfn:node-name (node )パラメータノードのノード名を返します。 fn:nilled(node)パラメータノードを拒否するかどうかのブール値を返します。 fn:data(item.item,...)項目のシーケンスを受け取り、アトミック値のシーケンスを返します。 fn:base-uri()fn:document-uri(node) 指定されたノードの document-uri 属性の値を返します。 エラーとトレース関数
  • fn:base-uri(node)

  • 現在のノードまたは指定されたノードのbase-uri属性の値を返します。

名前

説明fn:error()はクエリをデバッグするために使用されます。

数値に関する関数

  • fn:error(error)

  • fn:エラー( error,description)

  • fn:error(error,description,error-object)

  • 例: error(fn:QName('http://example.com/test', 'err:toohigh ')、'エラー: 価格が高すぎます')
結果: http://example.com/test#toohigh と文字列「エラー: 価格が高すぎます」が外部処理環境に返されます。

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)

num 引数より大きい最小の整数を返します。

例: Ceiling(3.14)

結果: 4

fn:floor(num)

num パラメータ以下の最大の整数を返します。

例: Floor(3.14)

結果: 3

fn:round(num)

num パラメーターを最も近い整数に丸めます。

例:round(3.14)

結果:3

fn:round-half-to-even()

例:round-half-to-even(0.5)

結果:0

例:round-half-to-even(1.5)

結果:2

例:round-half-to-even(2.5)

結果:2

文字列に関する関数

NameDescription
fn:string(arg)

パラメータの文字列値を返します。パラメータには、数値、論理値、またはノードのセットを指定できます。

例: string(314)

結果: "314"

fn:codepoints-to-string(int,int,...)

コードポイントシーケンスに基づいて文字列を返します。

例: codepoints-to-string(84, 104, 233, 114, 232, 115, 101)

結果: 'Thérèse'

fn: string-to-codepoints(string)

によるto String は、コード ポイントのシーケンスを返します。

例: string-to-codepoints("Thérèse")

結果: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2)によるとUnicode コード ポイントの比較。comp1 の値が comp2 の値と等しい場合に true を返します。 (http://www.w3.org/2005/02/xpath-functions/collat​​ion/codepoint)、それ以外の場合は false が返されます。
  • fn:compare(comp1,comp2)

  • fn:compare(comp1,comp2,collat​​ion)

comp1 が comp2 より小さい場合、-1 を返します。 comp1 が comp2 と等しい場合、0 が返されます。 comp1 が comp2 より大きい場合、1 を返します。 (使用される比較ルールによって異なります)。

例: Compare('ghi', 'ghi')

結果: 0

fn:concat(string,string,...)

文字列の連結を返します。

例: concat('XPath ','is ','FUN!')

結果: 'XPath は楽しい!'

fn:string-join((string,string,...), sep)

文字列パラメータと連結された文字列を返すには、区切り文字として sep パラメータを使用します。

例: string-join(('私たち', 'are', 'having', 'fun!'), ' ')

結果: ' 私たちは楽しんでいます! '

例: string-join(( 'We'、'are'、'having'、'fun!'))

結果: 'Wearehavingfun!'

例: string-join((), 'sep')

結果:''

  • fn:substring(string,start,len)

  • fn:substring(string,start)

開始位置から指定された長さの部分文字列を返します。最初の文字のインデックスは 1 です。 len 引数を省略した場合は、文字列の開始位置から終了位置までの部分文字列が返されます。

例: substring('Beatles',1,4)

結果: 'Beat'

例: 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 ')

結果: 'The XML'

fn:normalize-unicode() Unicode 正規化を実行します。
fn:upper-case(string)

文字列パラメータを大文字に変換します。

例: upper-case('The XML')

結果: 'THE XML'

fn: lower-case(string)

文字列パラメータを小文字に変換します。

例: lower-case('The XML')

結果: 'the xml'

fn:translate(string1,string2,string3)

string1 の string2 を string3 に置き換えます。

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

結果:'12:45'

例:translate('12:30','03','54')

結果: '12:45'

例: translation('12:30','0123','abcd')

結果: 'bc:da'

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"

例:escape-uri ("http://example.com/~bébé", false())

結果: "http://example.com/~b%C3%A9b%C3%A9"

fn:contains (string1,string2)

string1 に string2 が含まれる場合は true を返し、それ以外の場合は false を返します。

例: contains('XML','XM')

結果: true

fn:starts-with(string1,string2)

string1 が string2 で始まる場合は true を返し、それ以外の場合は false を返します。

例:starts-with('XML','X')

結果:true

fn:ends-with(string1,string2)

string1がstring2で終わる場合はtrueを返し、それ以外の場合はReturn間違い。

例: opens-with('XML','X')

結果: false

fn:substring-before(string1,string2)

string1 に出現する前の string2 の部分文字列を返します。

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

結果: '12'

fn:substring-after(string1,string2)

string1 に出現した後に string2 を返します。部分文字列。

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

結果: '10'

fn:matches(string,pattern)

文字列パラメータが指定されたパターンと一致する場合、その場合は true を返し、それ以外の場合は false を返します。

例:matches("Merano", "ran")

結果: true

fn:replace(string,pattern,replace)

指定されたパターンをreplaceパラメータで置換し、結果を返します。

例: replace("Bella Italia", "l", "*")

結果: 'Be**a Ita*ia'

例: replace("Bella Italia", "l", "")

結果: 'Bea Itaia'

fn:tokenize(string,pattern)

例: tokenize("XPath is fun", "s+")

結果: ("XPath", "is" 、「楽しい」)

anyURIの関数

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

ブール関数について値

名前 説明 fn:boolean(arg) 数値、文字列、またはノードのセットのブール値を返します。 fn:not(arg)fn:true()fn:false()

期間、日付、時刻に関する関数

日付、時刻、期間のコンポーネント抽出関数

まず、boolean() 関数を使用してパラメータをブール値に復元します。ブール値が false の場合は true、それ以外の場合は true を返します。

例: not(true())

結果: false

ブール値 true を返します。

例: true()

結果: true

ブール値 false を返します。

例: false()

結果: false

NameDescription
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) 標準語彙表記で表現された、パラメーター値の分の部分の 10 進数を返します。
fn:year-from-dateTime(datetime)

パラメータのローカル値の年の部分の整数を返します。

例: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

結果: 2005

fn:month-from-dateTime(datetime)

パラメータのローカル値の月の部分の整数を返します。

例: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

結果: 01

fn:day-from-dateTime(datetime)

パラメータのローカル値の日の部分の整数を返します。

例: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

結果: 10

fn:hours-from-dateTime(datetime)

引数のローカル値の時間の部分を整数として返します。

例: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

結果: 12

fn: minutes-from-dateTime(datetime)

引数のローカル値の分の部分の整数を返します。

例: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

結果: 30

fn:seconds-from-dateTime(datetime)

パラメータのローカル値の秒部分を 10 進数で返します。

例: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

結果: 0

fn:timezone-from-dateTime(datetime ) パラメーターのタイムゾーン部分が存在する場合、それを返します。
fn:year-from-date(date)

パラメータのローカル値で年を表す整数を返します。

例: year-from-date(xs:date("2005-04-23"))

結果: 2005

fn:month-from-date(date)

戻りパラメータのローカル値月を表す整数。

例: month-from-date(xs:date("2005-04-23"))

結果: 4

fn:day-from-date(date)

戻りパラメータのローカル値日を表す整数。

例: day-from-date(xs:date("2005-04-23"))

結果: 23

fn:timezone-from-date(date)タイムゾーン部分を返しますパラメータが存在する場合。
fn:hours-from-time(time)

パラメータのローカル値の時間の部分を表す整数を返します。

例: hours-from-time(xs:time("10:22:00"))

結果: 10

fn: minutes-from-time(time)

戻りパラメータのローカル値分の部分を表す整数。

例: minutes-from-time(xs:time("10:22:00"))

結果: 22

fn:秒からの時間(time)

戻りパラメータのローカル値2 番目の部分を表す整数。

例: minutes-from-time(xs:time("10:22:00"))

結果: 0

fn:timezone-from-time(time)タイムゾーン部分を返しますパラメータが存在する場合。
fn:adjust-dateTime-to-timezone(datetime,timezone) timezone パラメーターが空の場合は、タイムゾーンなしで dateTime を返します。それ以外の場合は、タイムゾーンを含む dateTime が返されます。
fn:adjust-date-to-timezone(date,timezone) timezone パラメーターが空の場合、タイムゾーンなしの日付が返されます。それ以外の場合は、タイムゾーンを含む日付が返されます。
fn:adjust-time-to-timezone(time,timezone) timezone パラメーターが空の場合、タイムゾーンなしの時間が返されます。それ以外の場合は、タイムゾーン付きの時刻を返します。

QNamesに関連する関数

NameDescription
fn:QName()
fn:local-name-from - Q名前()
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") は次の場合に true <p xml:lang="en">...</p>

例: Lang("de") は、次の場合に false です。 <p xml:lang=ja 指定されたノードが属するノードまたはノード ツリーのルート ノード。通常はドキュメント ノードです。

名前説明
fn:index-of((item,item,...),searchitem)

Return 位置searchitem パラメーターと等しい項目のシーケンス内。

例: インデックスの ((15, 40, 25, 40, 10), 40)

結果: (2, 4)

例: インデックスの (("a", "dog", "and ", "a", "duck"), "a")

結果 (1, 4)

例:index-of ((15, 40, 25, 40, 10), 18)

結果: ( )

fn:remove((item,item,...),position)

positionパラメータで指定された項目を削除しながら、itemパラメータによって構築された新しいシーケンスを返します。

例: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,...)

パラメータ値が空のシーケンスの場合は true を返し、それ以外の場合は false を返します。

例: empty(remove(("ab", "cd"), 1))

結果: false

fn:exists(item,item,...)

パラメータ値の場合is not シーケンスが空の場合は true を返し、それ以外の場合は false を返します。

例:exists(remove(("ab"), 1))

結果: false

fn:distinct-values((item,item,...),collat​​ion)

return unique異なる価値観。

例: unique-values((1, 2, 3, 1, 2))

結果: (1, 2, 3)

fn:insert-before((item,item,... ),pos,inserts)

item パラメーターによって構築された新しいシーケンスを返し、pos パラメーターによって指定された位置に inserts パラメーターの値を挿入します。

例: insert-before(("ab", "cd"), 0, "gh")

結果: ("gh", "ab", "cd")

例: insert-before(( "ab", "cd"), 1, "gh")

結果: ("gh", "ab", "cd")

例: insert-before(("ab", "cd"), 2, "gh")

結果: ("ab", "gh", "cd")

例: insert-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:unowned((item,item,...)) によって決定された順序でアイテムを返します。実装 。

シーケンス容量をテストする関数

名前説明
fn:zero-or-one(item,item,...)引数に0または1が含まれている場合プロジェクトの場合はパラメータが返されます。それ以外の場合はエラーが生成されます。
fn:one-or-more(item,item,...)パラメータに 1 つ以上の項目が含まれている場合はパラメータを返し、それ以外の場合はエラーが生成されます。
fn:exactly-one(item,item,...)パラメータに項目が含まれている場合はパラメータを返し、それ以外の場合はエラーが生成されます。

Equals、Union、Intersection、Except

名前説明
fn:deep-equal(param1,param2,collat​​ion)If param1 and互いに一貫している待機 (deep -equal)、true を返し、それ以外の場合は false を返します。

Total関数

名前説明
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)等しいID値を持つ要素ノードのシーケンスを返します文字列引数で指定された 1 つ以上の値に代入します
fn:idref((string,string,...),node)文字列引数で指定された 1 つ以上の値の値と等しい IDREF 値
fn:doc(URI)
fn:doc-available(URI)If the doc( ) 関数はドキュメント ノードを返し、true を返します。それ以外の場合は false を返します。
  • fn:collection()

  • fn:collection(string)

コンテキスト関数

名前説明
fn :position()

現在処理中のノードのインデックス位置を返します。

例: //book[position()<=3]

結果: 最初の 3 つの本の要素を選択します

fn:last()

処理されたノード リスト内のアイテムの数を返します。

例: //book[last()]

結果: 最後の本の要素を選択します

fn:current-dateTime()現在の dateTime (タイムゾーン付き) を返します。
fn:current-date() 現在の日付 (タイムゾーン付き) を返します。
fn:current-time() 現在の時刻 (タイムゾーン付き) を返します。
fn:implicit-timezone()暗黙的なタイムゾーンの値を返します。
fn:default-collat​​ion()デフォルトの照合順序の値を返します。
fn:static-base-uri()base-uriの値を返します。

PHP中国語ウェブサイト