XSLT/XPath funksiyalari
XSLT 2.0, XPath 2.0 va XQuery 1.0 bir xil funksiyalar kutubxonasidan foydalanadi.
Funksiyalar ma’lumotnomasi
Funksiyalar nomlar fazosi uchun standart prefiks — fn:
Funksiyalar nomlar fazosining URI’si: http://www.w3.org/2005/xpath-functions
Maslahat: Funksiyalar ko‘pincha fn: prefiksi bilan chaqiriladi, masalan, fn:string(). Biroq fn: nomlar fazosining standart prefiksi bo‘lgani uchun funksiyalarni chaqirishda ularning nomiga prefiks qo‘shish shart emas.
Accessor (murojaat) funksiyalari
| Name | Tavsif |
|---|---|
| fn:node-name(node) | Argument tugunining tugun nomini (node-name) qaytaradi |
| fn:nilled(node) | Argument tuguni nilled (bo‘sh deb belgilangan) ekanligini bildiruvchi Boolean qiymat qaytaradi |
| fn:data(item.item,...) | Elementlar ketma-ketligini qabul qilib, atomar qiymatlar ketma-ketligini qaytaradi |
| fn:base-uri() fn:base-uri(node) |
Joriy yoki ko‘rsatilgan tugunning base-uri xususiyati qiymatini qaytaradi |
| fn:document-uri(node) | Ko‘rsatilgan tugun uchun document-uri xususiyati qiymatini qaytaradi |
Xatolar va kuzatuv (trace) funksiyalari
| Name | Tavsif |
|---|---|
| fn:error() fn:error(error) fn:error(error,description) fn:error(error,description,error-object) |
Misol: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Natija: tashqi qayta ishlash muhitiga http://example.com/test#toohigh va "Error: Price is too high" stringini qaytaradi |
| fn:trace(value,label) | So‘rovlarni debug qilish (nosozliklarni aniqlash) uchun ishlatiladi |
Sonli qiymatlar ustidagi funksiyalar
| Name | Tavsif |
|---|---|
| fn:number(arg) | Argumentning sonli qiymatini qaytaradi. Argument boolean, string yoki tugunlar to‘plami (node-set) bo‘lishi mumkin Misol: number('100') |
| fn:abs(num) | Argumentning mutlaq qiymatini qaytaradi Misol: abs(3.14) Misol: abs(-3.14) |
| fn:ceiling(num) | Son argumentidan katta bo‘lgan eng kichik butun sonni qaytaradi Misol: ceiling(3.14) |
| fn:floor(num) | Son argumentidan katta bo‘lmagan eng katta butun sonni qaytaradi Misol: floor(3.14) |
| fn:round(num) | Son argumentini eng yaqin butun songacha yaxlitlaydi Misol: round(3.14) |
| fn:round-half-to-even() | Misol: round-half-to-even(0.5) Natija: 0 Misol: round-half-to-even(1.5) Misol: round-half-to-even(2.5) |
Stringlar ustidagi funksiyalar
| Name | Tavsif |
|---|---|
| fn:string(arg) | Argumentning string qiymatini qaytaradi. Argument son, boolean yoki tugunlar to‘plami (node-set) bo‘lishi mumkin Misol: string(314) |
| fn:codepoints-to-string((int,int,...)) | Unicode standarti kod nuqtalari (code points) ketma-ketligidan string yaratadi Misol: codepoints-to-string((84, 104, 233, 114, 232, 115, 101)) |
| fn:string-to-codepoints(string) | Stringdan Unicode standarti kod nuqtalari ketma-ketligini qaytaradi Misol: string-to-codepoints("Thérèse") |
| fn:codepoint-equal(comp1,comp2) | Unicode kod nuqtalari bo‘yicha taqqoslash qoidasiga (collation) (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) ko‘ra comp1 qiymati comp2 qiymatiga teng bo‘lsa, true, aks holda false qaytaradi |
| fn:compare(comp1,comp2) fn:compare(comp1,comp2,collation) |
Agar comp1 comp2 dan kichik bo‘lsa -1, comp1 comp2 ga teng bo‘lsa 0, comp1 comp2 dan katta bo‘lsa 1 qaytaradi (ishlatilayotgan taqqoslash qoidasi (collation) bo‘yicha) Misol: compare('ghi', 'ghi') |
| fn:concat(string,string,...) | Stringlarni birlashtirish (konkatenatsiya) natijasini qaytaradi Misol: concat('XPath ','is ','FUN!') |
| fn:string-join((string,string,...),sep) | String argumentlarini sep argumentini ajratuvchi sifatida ishlatib birlashtirish orqali hosil qilingan stringni qaytaradi Misol: string-join(('We', 'are', 'having', 'fun!'), ' ') Misol: string-join(('We', 'are', 'having', 'fun!')) Misol:string-join((), 'sep') |
| fn:substring(string,start,len) fn:substring(string,start) |
Boshlang‘ich pozitsiyadan ko‘rsatilgan uzunlikkacha bo‘lgan qism stringni qaytaradi. Birinchi belgining indeksi 1 ga teng. Agar uzunlik ko‘rsatilmasa, boshlang‘ich pozitsiyadan oxirigacha bo‘lgan qism stringni qaytaradi Misol: substring('Beatles',1,4) Misol: substring('Beatles',2) |
| fn:string-length(string) fn:string-length() |
Ko‘rsatilgan stringning uzunligini qaytaradi. Agar string argumenti bo‘lmasa, joriy tugun string qiymatining uzunligini qaytaradi Misol: string-length('Beatles') |
| fn:normalize-space(string) fn:normalize-space() |
Ko‘rsatilgan stringning boshidagi va oxiridagi bo‘sh joylarni olib tashlaydi, ichidagi barcha bo‘sh joylar ketma-ketliklarini bitta bo‘sh joy bilan almashtiradi va natijani qaytaradi. Agar string argumenti bo‘lmasa, xuddi shu amalni joriy tugun ustida bajaradi Misol: normalize-space(' The XML ') |
| fn:normalize-unicode() | |
| fn:upper-case(string) | String argumentini katta harflarga o‘tkazadi Misol: upper-case('The XML') |
| fn:lower-case(string) | String argumentini kichik harflarga o‘tkazadi Misol: lower-case('The XML') |
| fn:translate(string1,string2,string3) | string1 dagi string2 belgilarini string3 belgilari bilan almashtirib, string1 ni o‘zgartiradi Misol: translate('12:30','30','45') Misol: translate('12:30','03','54') Misol: translate('12:30','0123','abcd') |
| fn:escape-uri(stringURI,esc-res) | Misol: escape-uri("http://example.com/test#car", true()) Natija: "http%3A%2F%2Fexample.com%2Ftest#car" Misol: escape-uri("http://example.com/test#car", false()) Misol: escape-uri ("http://example.com/~bébé", false()) |
| fn:contains(string1,string2) | Agar string1 string2 ni o‘z ichiga olsa, true, aks holda false qaytaradi Misol: contains('XML','XM') |
| fn:starts-with(string1,string2) | Agar string1 string2 bilan boshlansa, true, aks holda false qaytaradi Misol: starts-with('XML','X') |
| fn:ends-with(string1,string2) | Agar string1 string2 bilan tugasa, true, aks holda false qaytaradi Misol: ends-with('XML','X') |
| fn:substring-before(string1,string2) | string1 ning string2 uchraydigan joydan oldingi boshlang‘ich qismini qaytaradi Misol: substring-before('12/10','/') |
| fn:substring-after(string1,string2) | string1 ning string2 uchragan joydan keyingi qolgan qismini qaytaradi Misol: substring-after('12/10','/') |
| fn:matches(string,pattern) | Agar string argumenti shablonga (pattern) mos kelsa, true, aks holda false qaytaradi Misol: matches("Merano", "ran") |
| fn:replace(string,pattern,replace) | Berilgan shablonni (pattern) replace argumenti bilan almashtirish orqali hosil qilingan stringni qaytaradi Misol: replace("Bella Italia", "l", "*") Misol: replace("Bella Italia", "l", "") |
| fn:tokenize(string,pattern) | Misol: tokenize("XPath is fun", "\s+") Natija: ("XPath", "is", "fun") |
anyURI uchun funksiyalar
| Name | Tavsif |
|---|---|
| fn:resolve-uri(relative,base) |
Boolean qiymatlar ustidagi funksiyalar
| Name | Tavsif |
|---|---|
| fn:boolean(arg) | Son, string yoki tugunlar to‘plami (node-set) uchun boolean qiymat qaytaradi |
| fn:not(arg) | Argument avval boolean() funksiyasi qo‘llanib, boolean qiymatga keltiriladi. Agar boolean qiymat false bo‘lsa, true, agar true bo‘lsa, false qaytaradi Misol: not(true()) |
| fn:true() | true boolean qiymatini qaytaradi Misol: true() |
| fn:false() | false boolean qiymatini qaytaradi Misol: false() |
Davomiylik, sana va vaqt ustidagi funksiyalar
Davomiylik, sana va vaqtdan komponentlarni ajratib olish funksiyalari
| Name | Tavsif |
|---|---|
| fn:dateTime(date,time) | Argumentlarni sana va vaqtga aylantiradi |
| fn:years-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi yillar komponentini ifodalovchi butun sonni qaytaradi |
| fn:months-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi oylar komponentini ifodalovchi butun sonni qaytaradi |
| fn:days-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi kunlar komponentini ifodalovchi butun sonni qaytaradi |
| fn:hours-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi soatlar komponentini ifodalovchi butun sonni qaytaradi |
| fn:minutes-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi daqiqalar komponentini ifodalovchi butun sonni qaytaradi |
| fn:seconds-from-duration(datetimedur) | Argument qiymatining kanonik leksik ko‘rinishidagi soniyalar komponentini ifodalovchi o‘nlik sonni (decimal) qaytaradi |
| fn:year-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi yil komponentini ifodalovchi butun sonni qaytaradi Misol: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) |
| fn:month-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi oy komponentini ifodalovchi butun sonni qaytaradi Misol: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) |
| fn:day-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi kun komponentini ifodalovchi butun sonni qaytaradi Misol: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) |
| fn:hours-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi soatlar komponentini ifodalovchi butun sonni qaytaradi Misol: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) |
| fn:minutes-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi daqiqalar komponentini ifodalovchi butun sonni qaytaradi Misol: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) |
| fn:seconds-from-dateTime(datetime) | Argumentning lokallashtirilgan qiymatidagi soniyalar komponentini ifodalovchi o‘nlik sonni (decimal) qaytaradi Misol: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) |
| fn:timezone-from-dateTime(datetime) | Agar mavjud bo‘lsa, argumentning vaqt zonasi komponentini qaytaradi |
| fn:year-from-date(date) | Argumentning lokallashtirilgan qiymatidagi yilni ifodalovchi butun sonni qaytaradi Misol: year-from-date(xs:date("2005-04-23")) |
| fn:month-from-date(date) | Argumentning lokallashtirilgan qiymatidagi oyni ifodalovchi butun sonni qaytaradi Misol: month-from-date(xs:date("2005-04-23")) |
| fn:day-from-date(date) | Argumentning lokallashtirilgan qiymatidagi kunni ifodalovchi butun sonni qaytaradi Misol: day-from-date(xs:date("2005-04-23")) |
| fn:timezone-from-date(date) | Agar mavjud bo‘lsa, argumentning vaqt zonasi komponentini qaytaradi |
| fn:hours-from-time(time) | Argumentning lokallashtirilgan qiymatidagi soatlar komponentini ifodalovchi butun sonni qaytaradi Misol: hours-from-time(xs:time("10:22:00")) |
| fn:minutes-from-time(time) | Argumentning lokallashtirilgan qiymatidagi daqiqalar komponentini ifodalovchi butun sonni qaytaradi Misol: minutes-from-time(xs:time("10:22:00")) |
| fn:seconds-from-time(time) | Argumentning lokallashtirilgan qiymatidagi soniyalar komponentini ifodalovchi butun sonni qaytaradi Misol: seconds-from-time(xs:time("10:22:00")) |
| fn:timezone-from-time(time) | Agar mavjud bo‘lsa, argumentning vaqt zonasi komponentini qaytaradi |
| fn:adjust-dateTime-to-timezone(datetime,timezone) | Agar timezone argumenti bo‘sh bo‘lsa, vaqt zonasisiz dateTime qaytaradi. Aks holda vaqt zonasi ko‘rsatilgan dateTime qaytaradi |
| fn:adjust-date-to-timezone(date,timezone) | Agar timezone argumenti bo‘sh bo‘lsa, vaqt zonasisiz sana (date) qaytaradi. Aks holda vaqt zonasi ko‘rsatilgan sana qaytaradi |
| fn:adjust-time-to-timezone(time,timezone) | Agar timezone argumenti bo‘sh bo‘lsa, vaqt zonasisiz vaqt (time) qaytaradi. Aks holda vaqt zonasi ko‘rsatilgan vaqt qaytaradi |
QName’larga oid funksiyalar
| Name | Tavsif |
|---|---|
| fn:QName() | |
| fn:local-name-from-QName() | |
| fn:namespace-uri-from-QName() | |
| fn:namespace-uri-for-prefix() | |
| fn:in-scope-prefixes() | |
| fn:resolve-QName() |
Tugunlar ustidagi funksiyalar
| Name | Tavsif |
|---|---|
| fn:name() fn:name(nodeset) |
Joriy tugun yoki ko‘rsatilgan tugunlar to‘plamidagi birinchi tugun nomini qaytaradi |
| fn:local-name() fn:local-name(nodeset) |
Joriy tugun yoki ko‘rsatilgan tugunlar to‘plamidagi birinchi tugun nomini nomlar fazosi prefiksisiz qaytaradi |
| fn:namespace-uri() fn:namespace-uri(nodeset) |
Joriy tugun yoki ko‘rsatilgan tugunlar to‘plamidagi birinchi tugunning nomlar fazosi URI’sini qaytaradi |
| fn:lang(lang) | Agar joriy tugun tili ko‘rsatilgan til bilan mos kelsa, true qaytaradi Misol: Lang("en") quyidagi element uchun true Misol: Lang("de") quyidagi element uchun false |
| fn:root() fn:root(node) |
Joriy tugun yoki ko‘rsatilgan tugun tegishli bo‘lgan daraxtning ildizini qaytaradi. Bu odatda hujjat tuguni bo‘ladi |
Ketma-ketliklar ustidagi funksiyalar
Ketma-ketliklar ustidagi umumiy funksiyalar
| Name | Tavsif |
|---|---|
| fn:index-of((item,item,...),searchitem) | Elementlar ketma-ketligida searchitem argumentiga teng bo‘lgan elementlarning o‘rinlarini qaytaradi Misol: index-of ((15, 40, 25, 40, 10), 40) Misol: index-of (("a", "dog", "and", "a", "duck"), "a") Misol: index-of ((15, 40, 25, 40, 10), 18) |
| fn:remove((item,item,...),position) | item argumentlari qiymatidan tuzilgan yangi ketma-ketlikni qaytaradi — bunda position argumenti ko‘rsatgan element olib tashlanadi Misol: remove(("ab", "cd", "ef"), 0) Misol: remove(("ab", "cd", "ef"), 1) Misol: remove(("ab", "cd", "ef"), 4) |
| fn:empty(item,item,...) | Agar argumentlar qiymati bo‘sh ketma-ketlik BO‘LSA, true, aks holda false qaytaradi Misol: empty(remove(("ab", "cd"), 1)) |
| fn:exists(item,item,...) | Agar argumentlar qiymati bo‘sh ketma-ketlik BO‘LMASA, true, aks holda false qaytaradi Misol: exists(remove(("ab"), 1)) |
| fn:distinct-values((item,item,...),collation) | Faqat takrorlanmaydigan (har xil) qiymatlarni qaytaradi Misol: distinct-values((1, 2, 3, 1, 2)) |
| fn:insert-before((item,item,...),pos,inserts) | item argumentlari qiymatidan tuzilgan yangi ketma-ketlikni qaytaradi — bunda inserts argumenti qiymati pos argumenti ko‘rsatgan o‘ringa joylashtiriladi Misol: insert-before(("ab", "cd"), 0, "gh") Misol: insert-before(("ab", "cd"), 1, "gh") Misol: insert-before(("ab", "cd"), 2, "gh") Misol: insert-before(("ab", "cd"), 5, "gh") |
| fn:reverse((item,item,...)) | Ko‘rsatilgan elementlarni teskari tartibda qaytaradi Misol: reverse(("ab", "cd", "ef")) Misol: reverse(("ab")) |
| fn:subsequence((item,item,...),start,len) | start argumenti ko‘rsatgan o‘rindan boshlanib, len argumenti ko‘rsatgan miqdordagi elementlarni o‘z ichiga olgan elementlar ketma-ketligini qaytaradi. Birinchi element 1-o‘rinda joylashgan Misol: subsequence(($item1, $item2, $item3,...), 3) Misol: subsequence(($item1, $item2, $item3, ...), 2, 2) |
| fn:unordered((item,item,...)) | Elementlarni implementatsiyaga bog‘liq tartibda qaytaradi |
Ketma-ketliklarning kardinalligini (elementlar sonini) tekshiruvchi funksiyalar
| Name | Tavsif |
|---|---|
| fn:zero-or-one(item,item,...) | Agar argumentda nol yoki bitta element bo‘lsa, argumentni qaytaradi, aks holda xato chiqaradi |
| fn:one-or-more(item,item,...) | Agar argumentda bitta yoki undan ko‘p element bo‘lsa, argumentni qaytaradi, aks holda xato chiqaradi |
| fn:exactly-one(item,item,...) | Agar argumentda aynan bitta element bo‘lsa, argumentni qaytaradi, aks holda xato chiqaradi |
Tenglik, birlashma, kesishma va ayirma (Equals, Union, Intersection, Except)
| Name | Tavsif |
|---|---|
| fn:deep-equal(param1,param2,collation) | Agar param1 va param2 bir-biriga chuqur teng (deep-equal) bo‘lsa, true, aks holda false qaytaradi |
Agregat funksiyalar
| Name | Tavsif |
|---|---|
| fn:count((item,item,...)) | Tugunlar sonini qaytaradi |
| fn:avg((arg,arg,...)) | Argument qiymatlarining o‘rtacha qiymatini qaytaradi Misol: avg((1,2,3)) |
| fn:max((arg,arg,...)) | Boshqalaridan katta bo‘lgan argumentni qaytaradi Misol: max((1,2,3)) Misol: max(('a', 'k')) |
| fn:min((arg,arg,...)) | Boshqalaridan kichik bo‘lgan argumentni qaytaradi Misol: min((1,2,3)) Misol: min(('a', 'k')) |
| fn:sum(arg,arg,...) | Ko‘rsatilgan tugunlar to‘plamidagi har bir tugun sonli qiymatlarining yig‘indisini qaytaradi |
Ketma-ketliklar hosil qiluvchi funksiyalar
| Name | Tavsif |
|---|---|
| fn:id((string,string,...),node) | ID qiymati string argumentida ko‘rsatilgan bir yoki bir nechta qiymatlardan biriga teng bo‘lgan element tugunlari ketma-ketligini qaytaradi |
| fn:idref((string,string,...),node) | IDREF qiymati string argumentida ko‘rsatilgan bir yoki bir nechta qiymatlardan biriga teng bo‘lgan element yoki atribut tugunlari ketma-ketligini qaytaradi |
| fn:doc(URI) | |
| fn:doc-available(URI) | Agar doc() funksiyasi hujjat tugunini qaytarsa, true, aks holda false qaytaradi |
| fn:collection() fn:collection(string) |
Kontekst funksiyalari
| Name | Tavsif |
|---|---|
| fn:position() | Hozirda qayta ishlanayotgan tugunning indeks o‘rnini qaytaradi Misol: //book[position()<=3] |
| fn:last() | Qayta ishlanayotgan tugunlar ro‘yxatidagi elementlar sonini qaytaradi Misol: //book[last()] |
| fn:current-dateTime() | Joriy dateTime qiymatini (vaqt zonasi bilan) qaytaradi |
| fn:current-date() | Joriy sanani (vaqt zonasi bilan) qaytaradi |
| fn:current-time() | Joriy vaqtni (vaqt zonasi bilan) qaytaradi |
| fn:implicit-timezone() | Yashirin (implicit) vaqt zonasi qiymatini qaytaradi |
| fn:default-collation() | Standart taqqoslash qoidasi (collation) qiymatini qaytaradi |
| fn:static-base-uri() | base-uri qiymatini qaytaradi |
XSLT funksiyalari
Bundan tashqari, quyidagi o‘rnatilgan XSLT funksiyalari mavjud:
| Name | Tavsif |
|---|---|
| current() | Joriy tugunni qaytaradi |
| document() | Tashqi XML hujjatidagi tugunlarga murojaat qilish uchun ishlatiladi |
| element-available() | Ko‘rsatilgan element XSLT protsessori tomonidan qo‘llab-quvvatlanishini tekshiradi |
| format-number() | Sonni stringga aylantiradi |
| function-available() | Ko‘rsatilgan funksiya XSLT protsessori tomonidan qo‘llab-quvvatlanishini tekshiradi |
| generate-id() | Ko‘rsatilgan tugunni noyob tarzda identifikatsiya qiluvchi string qiymatni qaytaradi |
| key() | <xsl:key> elementi ko‘rsatgan indeks yordamida tugunlar to‘plamini (node-set) qaytaradi |
| system-property() | Tizim xususiyatlari qiymatini qaytaradi |
| unparsed-entity-uri() | Tahlil qilinmagan (unparsed) entity’ning URI’sini qaytaradi |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
