Fungsi XPath, XQuery, dan XSLT

fungsi akses

Nama Keterangan
fn:node-name(node) mengembalikan nama node parameter.
fn:nilled(node) mengembalikan nilai boolean yang menentukan apakah node parameter ditolak.
fn:data(item.item,...) menerima urutan item dan mengembalikan urutan nilai atom.
  • fn:base-uri()
  • fn:base-uri(node)
mengembalikan nilai atribut base-uri node saat ini atau node yang ditentukan.
fn:document-uri(node) mengembalikan nilai atribut document-uri node yang ditentukan.

fungsi kesalahan dan trace

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

contoh: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Harga terlalu tinggi')

hasil: mengembalikan ke lingkungan pengolahan eksternal http://example.com/test#toohigh serta string "Error: Harga terlalu tinggi".

fn:trace(value,label) digunakan untuk debug query.

fungsi tentang nilai

Nama Keterangan
fn:number(arg)

mengembalikan nilai parameter. Parameter dapat berupa nilai boolean, string, atau kumpulan node.

contoh: number('100')

hasil: 100

fn:abs(num)

mengembalikan nilai absolut parameter.

contoh: abs(3,14)

hasil: 3,14

contoh: abs(-3,14)

hasil: 3,14

fn:ceiling(num)

mengembalikan bilangan bulat terkecil yang lebih besar daripada parameter num.

contoh: ceiling(3,14)

Hasil: 4

fn:floor(num)

Mengembalikan bilangan bulat terbesar yang tidak melebihi parameter num.

Contoh: floor(3.14)

Hasil: 3

fn:round(num)

Menggerakkan parameter num ke bilangan bulat terdekat.

Contoh: round(3.14)

Hasil: 3

fn:round-half-to-even()

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

Hasil: 0

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

Hasil: 2

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

Hasil: 2

Fungsi-fungsi string

Nama Keterangan
fn:string(arg)

Mengembalikan nilai string parameter. Parameter dapat berupa angka, nilai logis, atau kumpulan node.

Contoh: string(314)

Hasil: "314"

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

Mengembalikan string berdasarkan urutan kode poin.

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

Hasil: 'Thérèse'

fn:string-to-codepoints(string)

Mengembalikan urutan kode poin berdasarkan string.

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

Hasil: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2) Menurut pertimbangan kode poin Unicode, jika nilai comp1 sama dengan nilai comp2, kembalikan true. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), jika tidak kembalikan false.
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

Jika comp1 lebih kecil daripada comp2, kembalikan -1. Jika comp1 sama dengan comp2, kembalikan 0. Jika comp1 lebih besar daripada comp2, kembalikan 1. (Berdasarkan aturan yang digunakan untuk pertimbangan).

Contoh: compare('ghi', 'ghi')

Hasil: 0

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

Mengembalikan gabungan string.

Contoh: concat('XPath ','adalah ','FUN!')

Hasil: 'XPath adalah FUN!'

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

Menggunakan parameter sep sebagai pemisah untuk mengembalikan string yang disesuaikan dari penggabungan string parameter.

Contoh: string-join(('We', 'are', 'having', 'fun!'), ' ')

Hasil: ' We are having fun! '

Contoh: string-join(('We', 'are', 'having', 'fun!'))

Hasil: 'Wearehavingfun!'

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

Hasil: ''

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

Mengembalikan substrung panjang yang ditentukan dari posisi start. Indeks karakter pertama adalah 1. Jika parameter len diabaikan, maka mengembalikan substrung dari posisi start hingga akhir string.

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

Hasil: 'Beat'

Contoh: substring('Beatles',2)

Hasil: 'eatles'

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

Mengembalikan panjang string yang ditentukan. Jika tidak ada parameter string, maka mengembalikan panjang nilai string node saat ini.

Contoh: string-length('Beatles')

Hasil: 7

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

Menghapus spasi di awal dan akhir string yang ditentukan, dan mengganti semua urutan spasi internal menjadi satu, kemudian kembalikan hasilnya. Jika tidak ada parameter string, maka mengolah node saat ini.

Contoh: normalize-space(' The   XML ')

Hasil: 'The XML'

fn:normalize-unicode() Melakukan standarisasi Unicode.
fn:upper-case(string)

Mengubah parameter string menjadi huruf besar.

Contoh: upper-case('The XML')

Hasil: 'THE XML'

fn:lower-case(string)

Mengubah parameter string menjadi huruf kecil.

Contoh: lower-case('The XML')

Hasil: 'the xml'

fn:translate(string1,string2,string3)

Ganti string2 di string1 dengan string3.

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

Hasil: '12:45'

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

Hasil: '12:45'

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

Hasil: 'bc:da'

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

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

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

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

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

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

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

fn:contains(string1,string2)

Jika string1 mengandung string2, kembalikan true, sebaliknya kembalikan false.

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

Hasil: true

fn:starts-with(string1,string2)

Jika string1 mulai dengan string2, kembalikan true, sebaliknya kembalikan false.

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

Hasil: true

fn:ends-with(string1,string2)

Jika string1 berakhir dengan string2, kembalikan true, sebaliknya kembalikan false.

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

hasil: false

fn:substring-before(string1,string2)

Mengembalikan substring sebelum string2 muncul di string1.

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

Hasil: '12'

fn:substring-after(string1,string2)

Mengembalikan substring setelah string2 muncul di string1.

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

Hasil: '10'

fn:matches(string,pattern)

Jika parameter string cocok dengan model yang ditentukan, kembalikan true, jika tidak kembalikan false.

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

Hasil: true

fn:replace(string,pattern,replace)

Ganti model yang ditentukan dengan parameter replace, dan kembalikan hasil.

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

Hasil: 'Be**a Ita*ia'

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

Hasil: 'Bea Itaia'

fn:tokenize(string,pattern)

Contoh: tokenize("XPath is fun", "\s+")

Hasil: ("XPath", "is", "fun")

Fungsi untuk anyURI

Nama Keterangan
fn:resolve-uri(relative,base)  

Fungsi tentang nilai boolean

Nama Keterangan
fn:boolean(arg) Mengembalikan nilai boolean untuk angka, string, atau kumpulan node.
fn:not(arg)

Pertama-tama mengembalikan parameter menjadi nilai boolean melalui fungsi boolean(). Jika nilai boolean ini adalah false, maka kembalikan true, jika tidak kembalikan true.

Contoh: not(true())

hasil: false

fn:true()

Mengembalikan nilai boolean true.

Contoh: true()

Hasil: true

fn:false()

Mengembalikan nilai boolean false.

Contoh: false()

hasil: false

Fungsi tentang durasi, tanggal, dan waktu

Fungsi pemisahan komponen tanggal, waktu, dan durasi

Nama Keterangan
fn:dateTime(date,time) Mengubah parameter menjadi tanggal dan waktu.
fn:years-from-duration(datetimedur) Mengembalikan nilai tahun parameter dalam bentuk bilangan bulat, yang diungkapkan dalam notasi kata biasa.
fn:months-from-duration(datetimedur) Mengembalikan nilai bulan parameter dalam bentuk bilangan bulat, yang diungkapkan dalam notasi kata biasa.
fn:days-from-duration(datetimedur) Mengembalikan nilai hari parameter dalam bentuk bilangan bulat, yang diungkapkan dalam notasi kata biasa.
fn:hours-from-duration(datetimedur) Mengembalikan nilai parameter dalam bentuk bilangan bulat untuk bagian jam, dengan cara menulis kata-kata standar.
fn:minutes-from-duration(datetimedur) Mengembalikan nilai parameter dalam bentuk bilangan bulat untuk bagian menit, dengan cara menulis kata-kata standar.
fn:seconds-from-duration(datetimedur) Mengembalikan nilai parameter dalam bentuk bilangan desimal untuk bagian menit, dengan cara menulis kata-kata standar.
fn:year-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat untuk bagian tahun.

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

Hasil: 2005

fn:month-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat untuk bagian bulan.

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

Hasil: 01

fn:day-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat untuk bagian hari.

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

Hasil: 10

fn:hours-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat untuk bagian jam.

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

Hasil: 12

fn:minutes-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat untuk bagian menit.

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

Hasil: 30

fn:seconds-from-dateTime(datetime)

Mengembalikan nilai lokal parameter dalam bentuk bilangan desimal untuk bagian detik.

Contoh: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

Hasil: 0

fn:timezone-from-dateTime(datetime) Kembalikan bagian zona waktu parameter, jika ada.
fn:year-from-date(date)

Mengembalikan nilai lokal parameter dalam bentuk bilangan bulat yang merepresentasikan tahun.

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

Hasil: 2005

fn:month-from-date(date)

Kembalikan bilangan integer yang mewakili bagian bulan di nilai lokal parameter.

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

Hasil: 4

fn:day-from-date(date)

Kembalikan bilangan integer yang mewakili bagian hari di nilai lokal parameter.

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

Hasil: 23

fn:timezone-from-date(date) Kembalikan bagian zona waktu parameter, jika ada.
fn:hours-from-time(time)

Kembalikan bilangan integer yang mewakili bagian jam di nilai lokal parameter.

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

Hasil: 10

fn:minutes-from-time(time)

Kembalikan bilangan integer yang mewakili bagian menit di nilai lokal parameter.

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

Hasil: 22

fn:seconds-from-time(time)

Kembalikan bilangan integer yang mewakili bagian detik di nilai lokal parameter.

Contoh: seconds-from-time(xs:time("10:22:00"))

Hasil: 0

fn:timezone-from-time(time) Kembalikan bagian zona waktu parameter, jika ada.
fn:adjust-dateTime-to-timezone(datetime,timezone) Jika parameter timezone kosong, kembalikan dateTime tanpa zona waktu. Jika tidak, kembalikan dateTime dengan zona waktu.
fn:adjust-date-to-timezone(date,timezone) Jika parameter timezone kosong, kembalikan tanggal tanpa zona waktu. Jika tidak, kembalikan tanggal dengan zona waktu.
fn:adjust-time-to-timezone(time,timezone) Jika parameter timezone kosong, kembalikan waktu tanpa zona waktu. Jika tidak, kembalikan waktu dengan zona waktu.

Fungsi yang berhubungan dengan QNames

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

Fungsi tentang node

Nama Keterangan
  • fn:name()
  • fn:name(nodeset)
Kembalikan nama node saat ini atau node pertama dalam kumpulan node.
  • fn:local-name()
  • fn:local-name(nodeset)
Kembalikan nama node saat ini atau node pertama dalam kumpulan node tanpa prefiks ruang nama.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Kembalikan URI ruang nama untuk node saat ini atau kumpulan node yang ditentukan.
fn:lang(lang)

Kembalikan true jika bahasa node saat ini cocok dengan bahasa yang ditentukan.

Contoh: Lang("en") adalah true untuk <p xml:lang="en">...</p>

Contoh: Lang("de") adalah false untuk <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
Kembalikan akar pohon node untuk node saat ini atau node yang ditentukan. biasanya node dokumen.

Fungsi tentang deret

Fungsi umum

Nama Keterangan
fn:index-of((item,item,...),searchitem)

Kembalikan posisi item yang sama dengan parameter searchitem dalam deret item.

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

Hasil: (2, 4)

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

Hasil (1, 4)

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

Hasil: ()

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

Kembalikan deret baru yang dibuat dari parameter item - menghapus item yang ditentukan oleh parameter posisi.

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

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

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

Hasil: ("cd", "ef")

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

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

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

Jika nilai parameter adalah deret kosong, kembalikan true, jika tidak kembalikan false.

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

hasil: false

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

mengembalikan true jika nilai parameter bukan urutan kosong, jika tidak kembalikan false.

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

hasil: false

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

mengembalikan nilai yang unik

contoh: distinct-values((1, 2, 3, 1, 2))

hasil: (1, 2, 3)

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

mengembalikan urutan baru yang dibangun dari parameter item - serta menempatkan nilai parameter inserts di posisi yang ditentukan oleh parameter pos.

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

hasil: ("gh", "ab", "cd")

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

hasil: ("gh", "ab", "cd")

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

hasil: ("ab", "gh", "cd")

contoh: insert-before(("ab", "cd"), 5, "gh")

hasil: ("ab", "cd", "gh")

fn:reverse((item,item,...))

mengembalikan urutan terbalik dari item yang ditentukan

contoh: reverse(("ab", "cd", "ef"))

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

contoh: reverse(("ab"))

hasil: ("ab")

fn:subsequence((item,item,...),start,len)

mengembalikan urutan item yang ditentukan oleh parameter start, panjang urutan ditentukan oleh parameter len. posisi pertama item adalah 1.

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

hasil: ($item3, ...)

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

hasil: ($item2, $item3)

fn:unordered((item,item,...)) mendapatkan urutan kembalian berdasarkan implementasi yang ditentukan

fungsi untuk menguji kapasitas urutan

Nama Keterangan
fn:zero-or-one(item,item,...) Jika parameter mengandung nol atau satu item, kembalikan parameter, jika tidak generate kesalahan
fn:one-or-more(item,item,...) Jika parameter mengandung satu atau lebih item, kembalikan parameter, jika tidak generate kesalahan
fn:exactly-one(item,item,...) Jika parameter mengandung satu item, kembalikan parameter, jika tidak generate kesalahan

Sama, Union, Intersep dan Except

Nama Keterangan
fn:deep-equal(param1,param2,collation) Jika param1 dan param2 sama dengan satu sama lain (deep-equal), kembalikan true, jika tidak kembalikan false

Fungsi penggabungan

Nama Keterangan
fn:count((item,item,...)) Mengembalikan jumlah node
fn:avg((arg,arg,...))

Mengembalikan rata-rata nilai parameter

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

Hasil: 2

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

Mengembalikan argumen yang lebih besar daripada parameter lain

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

Hasil: 3

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

Hasil: 'k'

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

Mengembalikan argumen yang lebih kecil daripada parameter lain

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

Hasil: 1

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

Hasil: 'a'

fn:sum(arg,arg,...) Mengembalikan total nilai dari setiap node dalam kumpulan node yang ditentukan

Fungsi untuk menghasilkan urutan

Nama Keterangan
fn:id((string,string,...),node) Mengembalikan urutan node elemen yang memiliki nilai ID yang sama dengan nilai yang disebutkan dalam argumen string
fn:idref((string,string,...),node) Mengembalikan urutan elemen atau node atribut yang memiliki nilai IDREF yang sama dengan nilai yang disebutkan dalam argumen string
fn:doc(URI)  
fn:doc-available(URI) Jika fungsi doc() mengembalikan node dokumen, kembalikan true, jika tidak kembalikan false.
  • fn:collection()
  • fn:collection(string)
 

Fungsi Konteks

Nama Keterangan
fn:position()

Kembalikan posisi index node yang sedang diproses.

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

Hasil: Memilih tiga elemen book pertama

fn:last()

Kembalikan jumlah item dalam daftar node yang diproses.

Contoh: //book[last()]

Hasil: Memilih elemen book terakhir

fn:current-dateTime() Kembalikan dateTime saat ini (dengan zona waktu).
fn:current-date() Kembalikan tanggal saat ini (dengan zona waktu).
fn:current-time() Kembalikan waktu saat ini (dengan zona waktu).
fn:implicit-timezone() Kembalikan nilai zona waktu yang tersembunyi.
fn:default-collation() Kembalikan nilai referensi standar.
fn:static-base-uri() Kembalikan nilai base-uri.