XPath, XQuery, and XSLT Functions

存取函数

Name Description
fn:node-name(node) 返回参数节点的节点名称。
fn:nilled(node) 返回是否拒绝参数节点的布尔值。
fn:data(item.item,...) 接受项目序列,并返回原子值序列。
  • fn:base-uri()
  • fn:base-uri(node)
返回当前节点或指定节点的 base-uri 属性的值。
fn:document-uri(node) 返回指定节点的 document-uri 属性的值。

错误和跟踪函数

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

例子:error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

结果:向外部处理环境返回 http://example.com/test#toohigh 以及字符串 "Error: Price is too high"。

fn:trace(value,label) 用于对查询进行 debug。

有关数值的函数

Name Description
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)

a cire ya'annan adawa da kai kai tsaki na num canzalla.

shaidari: floor(3.14)

Nata: 3

fn:round(num)

a num canzalla ya'annan adawa da kai tsaki.

shaidari: round(3.14)

Nata: 3

fn:round-half-to-even()

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

نتيجه: 0

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

Nata: 2

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

Nata: 2

tarihin zama

Name Description
fn:string(arg)

a cire wa'annan zama canzalla. canzalla za: adawa, nazarin da'annan da'annan ko'ina, ko'ina da'annan abin.

shaidari: string(314)

matanar da: "314"

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

a cire wa'annan zama daga halin codepoint.

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

matanar da: 'Thérèse'

fn:string-to-codepoints(zama)

a cire wa'annan halin codepoint daga zama.

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

matanar da: '84, 104, 233, 114, 232, 115, 101'

fn:codepoint-equal(comp1,comp2) daga abin Unicode codepoint nazarin, idan halin comp1 ya'assa halin comp2, ya'annan true. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), amma idan halin comp1 ya'assa halin comp2, ya'annan false.
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

idan comp1 ya kai comp2, ya'annan -1. idan comp1 ya'assa comp2, ya'annan 0. idan comp1 ya kai comp2, ya'annan 1. (daga abin da'annan nazarin).

shaidari: compare('ghi', 'ghi')

نتيجه: 0

fn:concat(zama,zama,...)

a cire wa'annan zama.

shaidari: concat('XPath ','ce ','dama!')

matanar da: 'XPath ce dama!)

fn:zamantaccen((zama,zama,...),sep)

يستخدم متغير sep كفاصل لجمع النصوص المعينة ويعد النص الناتج.]}

النموذج: string-join(('We', 'are', 'having', 'fun!'), ' ')

ناتج: ' We are having fun! '

النموذج: string-join(('We', 'are', 'having', 'fun!'))

ناتج: 'Wearehavingfun!'

النموذج: string-join((), 'sep')

ناتج: ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

يعيد النص المعين من موقع start. يتم حساب الموقع الأول كـ 1. إذا تم تخطي متغير len، يتم إرجاع النص من موقع start حتى نهاية النص.

النموذج: substring('Beatles',1,4)

ناتج: 'Beat'

النموذج: substring('Beatles',2)

ناتج: 'eatles'

  • fn:string-length(string)
  • fn:string-length()

يعيد طول النص المعين. إذا لم يكن هناك متغير string، يعيد طول قيمة النص الحالي.

النموذج: string-length('Beatles')

ناتج: 7

  • fn:normalize-space(string)
  • fn:normalize-space()

يحذف الفراغات الموجودة في بداية ونهاية النص المعين، ويحول جميع سلاسل الفراغات الداخلية إلى فاصلة واحدة، ثم يعيد النتيجة. إذا لم يكن هناك متغير string، يتم معالجة النص الحالي.

النموذج: normalize-space(' The   XML ')

纳息:'The XML'

fn:normalize-unicode() يقوم بتنظيم Unicode.
fn:upper-case(string)

يغير متغير string إلى صيغة كبيرة.

النموذج: upper-case('The XML')

纳息:'THE XML'

fn:lower-case(string)

يغير متغير string إلى صيغة صغيرة.

النموذج: lower-case('The XML')

纳息:'the xml'

fn:translate(string1,string2,string3)

Gaje string2 a kama string1 da string3.

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

Alharin: '12:45'

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

Alharin: '12:45'

Tarihin: translate('12:30','0123','abcd')

Alharin: 'bc:da'

fn:escape-uri(stringURI,esc-res)

Tarihin: escape-uri("http://example.com/test#car", true())

Alharin: "http%3A%2F%2Fexample.com%2Ftest#car"

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

Alharin: "http://example.com/test#car"

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

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

fn:contains(string1,string2)

Bai string1 ba abin string2, abin bai true, biiwa bai false.

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

结果:true

fn:starts-with(string1,string2)

Bai string1 ba kama string2, abin bai true, biiwa bai false.

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

结果:true

fn:ends-with(string1,string2)

Bai string1 ba kama string2, abin bai true, biiwa bai false.

Tarihin: ends-with('XML','X')

结果:false

fn:substring-before(string1,string2)

Riwarin string2 a kama abin bai string1.

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

Alharin: '12'

fn:substring-after(string1,string2)

Riwarin string2 a kama abin bai string1.

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

结果:'10'

fn:matches(string,pattern)

如果 string 参数匹配指定的模式,则返回 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", "fun")

针对anyURI的函数

Name Description
fn:resolve-uri(relative,base)  

关于布尔值的函数

Name Description
fn:boolean(arg) 返回数字、字符串或节点集的布尔值。
fn:not(arg)

首先通过 boolean() 函数把参数还原为一个布尔值。如果该布尔值为 false,则返回 true,否则返回 true。

例子:not(true())

结果:false

fn:true()

返回布尔值 true。

例子:true()

结果:true

fn:false()

返回布尔值 false。

例子:false()

结果:false

有关持续时间、日期和时间的函数

日期、时间、持续时间的组件提取函数

Name Description
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)

ترجيع جزء السنة المحلية للمعامل كعدد صحيح.

مثال: 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)

ترجيع جزء الثواني المحلية للمعامل كعدد عشري.

مثال: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

نتيجه: 0

fn:timezone-from-dateTime(datetime) بخش timezone از پارامتر برگرده، اگر وجود داشته باشه.
fn:year-from-date(date)

ترجيع القيمة المحلية للمعامل كعدد صحيح يمثل السنة.

مثال: year-from-date(xs:date("2005-04-23"))

نتيجه: 2005

fn:month-from-date(date)

بخش integer از پارامتر که نشان‌دهنده بخش months است رو برگرده.

مثال: month-from-date(xs:date("2005-04-23"))

نتيجه: 4

fn:day-from-date(date)

بخش integer از پارامتر که نشان‌دهنده بخش days است رو برگرده.

مثال: day-from-date(xs:date("2005-04-23"))

نتيجه: 23

fn:timezone-from-date(date) بخش timezone از پارامتر برگرده، اگر وجود داشته باشه.
fn:hours-from-time(time)

بخش integer از پارامتر که نشان‌دهنده بخش hours است رو برگرده.

مثال: hours-from-time(xs:time("10:22:00"))

نتيجه: 10

fn:minutes-from-time(time)

بخش integer از پارامتر که نشان‌دهنده بخش minutes است رو برگرده.

مثال: minutes-from-time(xs:time("10:22:00"))

نتيجه: 22

fn:seconds-from-time(time)

بخش integer از پارامتر که نشان‌دهنده بخش seconds است رو برگرده.

مثال: seconds-from-time(xs:time("10:22:00"))

نتيجه: 0

fn:timezone-from-time(time) بخش timezone از پارامتر برگرده، اگر وجود داشته باشه.
fn:adjust-dateTime-to-timezone(datetime,timezone) اگر para timezone خالي باشه، dateTime بي‌زمان‌يه رو برگرده. اگر نه، dateTime با timezone رو برگرده.
fn:adjust-date-to-timezone(date,timezone) اگر para timezone خالي باشه، date بي‌زمان‌يه رو برگرده. اگر نه، date با timezone رو برگرده.
fn:adjust-time-to-timezone(time,timezone) اگر para timezone خالي باشه، time بي‌زمان‌يه رو برگرده. اگر نه، time با timezone رو برگرده.

ينداويه قيمه QNames

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

ayi: jumlarin dake dama daya ba daya dama ce aiki.

Name Description
  • fn:name()
  • fn:name(nodeset)
a dake dama daya ba daya dama ce aiki daya daya dama ce aiki dama daya daya dama ce aiki dake.
  • fn:local-name()
  • fn:local-name(nodeset)
a dake dama daya ba daya dama ce aiki daya daya dama ce aiki dama daya daya dama ce aiki dake. dake daya ba daya dama ce aiki dama daya daya dama ce aiki dake.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
a dake dama daya ba daya dama ce aiki daya daya dama ce aiki dama daya daya dama ce aiki dake. dake daya ba daya dama ce aiki dama daya daya dama ce aiki dake.
fn:lang(lang)

idanin aiki dama daya ba daya dama ce aiki dama daya daya dama ce aiki, dake da a.

amfani: Lang("en") is true for <p xml:lang="en">...</p>

amfani: Lang("de") is false for <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
a dake dama daya ba daya dama ce aiki daya daya dama ce dake dama daya daya dama ce aiki dake. dake daya ba daya dama ce dokumentu aiki. dake daya ba daya dama ce aiki dake.

ayi: jumlarin dake dama daya ba daya dama ce daya dama.

ayi: jumlarin dake dama daya ba daya dama ce aiki.

Name Description
fn:index-of((item,item,...),searchitem)

a dake dama daya ba daya dama ce searchitem paramita daya daya dama ce position. dake daya ba daya dama ce item daya daya dama ce searchitem.

amfani: index-of ((15, 40, 25, 40, 10), 40)

naturi: (2, 4)

amfani: index-of (("a", "dog", "and", "a", "duck"), "a")

naturi: (1, 4)

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

naturi: ()

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

a dake dama daya ba daya dama ce item paramita dake, dake daya ba daya dama ce position paramita naki. dake daya ba daya dama ce item paramita dake.

amfani: remove(("ab", "cd", "ef"), 0)

naturi: ("ab", "cd", "ef")

amfani: remove(("ab", "cd", "ef"), 1)

naturi: ("cd", "ef")

amfani: remove(("ab", "cd", "ef"), 4)

naturi: ("ab", "cd", "ef")

fn:empty(item,item,...)

idanin bai daya dama ce dake dake, dake da a, kowa da ba da a.

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

结果:false

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

如果参数值不是空序列,则返回 true,否则返回 false。

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

结果:false

fn:distinct-values((item,item,...),collation)

返回唯一不同的值。

例子:distinct-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。

wasan: subsequence(($item1, $item2, $item3,...), 3)

nass: ($item3, ...)

wasan: subsequence(($item1, $item2, $item3, ...), 2, 2)

nass: ($item2, $item3)

fn:unordered((item,item,...)) ka ɗauka jiyar ɗauka tsa kwaya taɗa

tse tsa kwarin kwaya taɗa

Name Description
fn:zero-or-one(item,item,...) Idan sabon ayyukan yana da zirgi ko wata, yanar ciniki ayyukan, kuma kuma yanar ciniki ra'ayi.
fn:one-or-more(item,item,...) Idan sabon ayyukan yana da wata ko yauyuka, yanar ciniki ayyukan, kuma kuma yanar ciniki ra'ayi.
fn:exactly-one(item,item,...) Idan sabon ayyukan yana da hanyar wata, yanar ciniki ayyukan, kuma kuma yanar ciniki ra'ayi.

Siffar, Union, Intersection da Except

Name Description
fn:deep-equal(param1,param2,collation) Idan param1 da param2 suna da kiyasta da juna (deep-equal), yanar ciniki true, kuma kuma yanar ciniki false.

Fonki na yanar ciniki

Name Description
fn:count((item,item,...)) Yanar ciniki na cikakken a bai a hawarci na kowane yadda a kira a cikin yankin.
fn:avg((arg,arg,...))

Yanar ciniki na cikakken a bai a hawarci na kowane yadda a kira a cikin yankin.

Shafi: avg((1,2,3))

Nata: 2

fn:max((arg,arg,...))

Yanar ciniki na cikakken a bai a hawarci na kowane yadda yana kusa da kowane yadda a kira a cikin yankin.

Shafi: max((1,2,3))

Nata: 3

Shafi: max(('a', 'k'))

Nata: 'k'

fn:min((arg,arg,...))

Yanar ciniki na cikakken a bai a hawarci na kowane yadda yana kusa da kowane yadda a kira a cikin yankin.

Shafi: min((1,2,3))

Nata: 1

Shafi: min(('a', 'k'))

Nata: 'a'

fn:sum(arg,arg,...) Yanar ciniki na yawan kowane jiki na cikakken na zane-zane na kowane zane.

Fonki na yanar ciniki

Name Description
fn:id((string,string,...),node) Yanar ciniki na cikakken a bai a hawarci na cikakken, wanda ke sauki da kowane yadda a kira a cikin yankin da a yi aiki da shi.
fn:idref((string,string,...),node) Yanar ciniki na cikakken a bai a hawarci na cikakken, wanda ke sauki da yadda a kiyasta da kowane yadda an kira a cikin yankin da a yi aiki da shi.
fn:doc(URI)  
fn:doc-available(URI) If the doc() function returns a document node, it returns true, otherwise it returns false.
  • fn:collection()
  • fn:collection(string)
 

Context Functions

Name Description
fn:position()

Return the index position of the current node being processed.

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

Result: Select the first three book elements

fn:last()

Return the number of items in the list of nodes being processed.

Example: //book[last()]

Result: Select the last book element

fn:current-dateTime() Return the current dateTime (with timezone).
fn:current-date() Return the current date (with timezone).
fn:current-time() Return the current time (with timezone).
fn:implicit-timezone() Return the value of the implicit timezone.
fn:default-collation() Return the value of the default comparison.
fn:static-base-uri() Return the value of base-uri.