Fungsi XSLT, XPath, dan XQuery

XSLT 2.0, XPath 2.0, dan XQuery 1.0 berbagi library fungsi yang sama.

Panduan Referensi Fungsi

Prefix standar namespace fungsi adalah:fn:

URI namespace fungsi adalah:http://www.w3.org/2005/xpath-functions

Panduan:Dipakai secara umum fn: prefix untuk memanggil fungsi, seperti fn:string()Namun, karena fn: Adalah prefix standar namespace, sehingga namafungsi tidak perlu ditambahkan prefix saat dipanggil.

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 sekuel item dan mengembalikan sekuel nilai atom.
  • fn:base-uri()
  • fn:base-uri(node)
Mengembalikan nilai atribut base-uri dari node saat ini atau node yang ditentukan.
fn:document-uri(node) Mengembalikan nilai atribut document-uri dari node yang ditentukan.

Top

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 http://example.com/test#toohigh kepada lingkungan pengolahan luaran serta string "Error: Harga terlalu tinggi".

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

Top

Fungsi tentang nilai

Nama Keterangan
fn:number(arg)

Kembalikan 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 dari parameter num.

Contoh: ceiling(3.14)

Hasil: 4

fn:floor(num)

Mengembalikan bilangan bulat terbesar yang tidak melebihi parameter num.

Contoh: floor(3.14)

结果:3

fn:round(num)

Mengurangi parameter num ke bilangan bulat terdekat.

Contoh: round(3.14)

结果:3

fn:round-half-to-even()

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

Hasil: 0

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

结果:2

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

结果:2

Top

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

Menurut urutan kode titik mengembalikan string.

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

Hasil: 'Thérèse'

fn:string-to-codepoints(string)

Menurut string mengembalikan urutan kode titik.

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

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

fn:codepoint-equal(comp1,comp2) Menurut referensi kode titik 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 kurang dari comp2, kembalikan -1. Jika comp1 sama dengan comp2, kembalikan 0. Jika comp1 lebih besar dari comp2, kembalikan 1 (berdasarkan aturan referensi yang digunakan).

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

Hasil: 0

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

Mengembalikan gabungan string.

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

Hasil: 'XPath is FUN!'

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

Menggunakan parameter sep sebagai pemisah untuk mengembalikan string yang disambungkan.

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 yang ditentukan dari posisi start. Indeks karakter pertama adalah 1. Jika parameter len diabaikan, maka mengembalikan substrung dari posisi start sampai 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 hasil. 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 ke huruf besar.

Contoh: upper-case('The XML')

Hasil: 'THE XML'

fn:lower-case(string)

Konversi parameter string ke huruf kecil.

Contoh: lower-case('The XML')

Hasil: 'the xml'

fn:translate(string1,string2,string3)

Ganti string2 dalam 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, jika tidak kembalikan false.

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

Hasil: true

fn:starts-with(string1,string2)

Jika string1 mulai dengan string2, kembalikan true, jika tidak kembalikan false.

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

Hasil: true

fn:ends-with(string1,string2)

Jika string1 berakhir dengan string2, kembalikan true, jika tidak kembalikan false.

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

Hasil: false

fn:substring-before(string1,string2)

Kembalikan substrung sebelum string2 muncul di string1.

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

Hasil: '12'

fn:substring-after(string1,string2)

Kembalikan substruktur string2 yang muncul setelah string1.

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

Hasil: '10'

fn:matches(string,pattern)

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

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

Hasil: true

fn:replace(string,pattern,replace)

Ganti pola yang ditentukan ke replace parameter, dan kembalikan hasilnya.

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")

Top

Fungsi untuk anyURI.

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

Top

Fungsi tentang nilai boolean.

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

Pertama-tama, mengembalikan parameter ke nilai boolean melalui fungsi boolean().

Jika nilai boolean ini adalah false, kembalikan true, jika tidak kembalikan true.

Contoh: not(true())

Hasil: false

fn:true()

Kembalikan nilai boolean true.

Contoh: true()

Hasil: true

fn:false()

Kembalikan nilai boolean false.

Contoh: false()

Hasil: false

Top

Fungsi tentang durasi, tanggal, dan waktu.

Fungsi mengekstrak komponen tanggal, waktu, dan durasi.

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

Mengembalikan nilai lokal parameter bagian tahun dalam bilangan bulat.

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

Hasil: 2005

fn:month-from-dateTime(datetime)

Mengembalikan nilai lokal parameter bagian bulan dalam bilangan bulat.

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

Hasil: 01

fn:day-from-dateTime(datetime)

Mengembalikan nilai lokal parameter bagian hari dalam bilangan bulat.

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

Hasil: 10

fn:hours-from-dateTime(datetime)

Mengembalikan nilai lokal parameter bagian jam dalam bilangan bulat.

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

Hasil: 12

fn:minutes-from-dateTime(datetime)

Mengembalikan nilai lokal parameter bagian menit dalam bilangan bulat.

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

Hasil: 30

fn:seconds-from-dateTime(datetime)

Mengembalikan nilai lokal parameter bagian detik dalam bilangan desimal.

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)

Kembalikan nilai integer bagian tahun dalam nilai lokal parameter.

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

Hasil: 2005

fn:month-from-date(date)

Kembalikan nilai integer bagian bulan dalam nilai lokal parameter.

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

Hasil: 4

fn:day-from-date(date)

Kembalikan nilai integer bagian hari dalam 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 nilai integer bagian jam dalam nilai lokal parameter.

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

Hasil: 10

fn:minutes-from-time(time)

Kembalikan nilai integer bagian menit dalam nilai lokal parameter.

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

Hasil: 22

fn:seconds-from-time(time)

Kembalikan nilai integer bagian detik dalam 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 date tanpa zona waktu.

Jika tidak, kembalikan date dengan zona waktu.

fn:adjust-time-to-timezone(time,timezone)

Jika parameter timezone kosong, kembalikan time tanpa zona waktu.

Jika tidak, kembalikan waktu dengan timezone.

Top

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()  

Top

Fungsi tentang node

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

Jika bahasa node saat ini cocok dengan bahasa yang ditentukan, kembalikan true.

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)
Mengembalikan akar pohon node untuk node saat ini atau node yang ditentukan. Biasanya node dokumen.

Top

Fungsi tentang urutan

Fungsi umum

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

Mengembalikan posisi dalam urutan item yang sama dengan parameter searchitem.

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)

Mengembalikan urutan 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,...)

Kembalikan true jika nilai parameter adalah urutan kosong, jika tidak kembalikan false.

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

Hasil: false

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

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

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

Hasil: false

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

Kembalikan nilai yang berbeda.

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

Hasil: (1, 2, 3)

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

Kembalikan urutan baru yang dibuat oleh parameter item - tetapi masukkan 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,...))

Kembalikan urutan balik dari item yang ditentukan.

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

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

Contoh: reverse(("ab"))

Hasil: ("ab")

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

Kembalikan urutan item yang ditentukan oleh parameter start dan panjang urutan ditentukan oleh parameter len.

Posisi pertama proyek adalah 1.

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

结果:($item3, ...)

例子:subsequence(($item1, $item2, $item3, ...), 2, 2)

结果:($item2, $item3)

fn:unordered((item,item,...)) 依据实现决定的顺序来返回项目。

测试序列容量的函数

Nama Keterangan
fn:zero-or-one(item,item,...) 如果参数包含零个或一个项目,则返回参数,否则生成错误。
fn:one-or-more(item,item,...) 如果参数包含一个或多个项目,则返回参数,否则生成错误。
fn:exactly-one(item,item,...) 如果参数包含一个项目,则返回参数,否则生成错误。

Equals, Union, Intersection and Except

Nama Keterangan
fn:deep-equal(param1,param2,collation) 如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。

合计函数

Nama Keterangan
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,...) 返回指定节点集中每个节点的数值的总和。

生成序列的函数

Nama Keterangan
fn:id((string,string,...),node) 返回元素节点序列,这些节点的 ID 值等于 string 参数中指定的一个或多个值。
fn:idref((string,string,...),node) 返回元素或属性节点序列,这些节点的 IDREF 值等于 string 参数中指定的一个或多个值。
fn:doc(URI)  
fn:doc-available(URI) Kembalikan true jika fungsi doc() mengembalikan node dokumen, sebaliknya kembalikan false.
  • fn:collection()
  • fn:collection(string)
 

Top

Fungsi Konteks

Nama Keterangan
fn:position()

Kembalikan posisi index node yang saat ini 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 diam
fn:default-collation() Kembalikan nilai kolatis standar.
fn:static-base-uri() Kembalikan nilai base-uri.

Top

Fungsi XSLT

Selain itu, ada juga fungsi XSLT bawaan berikut ini:

Nama Deskripsi
current() Kembalikan kumpulan node yang hanya berisi node saat ini.
document() Dipergunakan untuk mengakses node dalam dokumen XML eksternal.
element-available() Mengesahkan apakah pemroses XSLT mendukung elemen yang ditentukan.
format-number() Mengubah angka menjadi string.
function-available() Mengesahkan apakah pemroses XSLT mendukung fungsi yang ditentukan.
generate-id() Kembalikan nilai string yang dapat mengidentifikasi node yang ditentukan.
key() Mengambil elemen yang sebelumnya ditandai dengan kalimat <xsl:key>.
node-set Mengubah pohon menjadi kumpulan node. Kumpulan node yang dihasilkan selalu berisi satu node dan adalah akar pohon.
system-property() Kembalikan nilai properti sistem.
unparsed-entity-uri() Kembalikan URI entitas yang belum diurai.

Top