XSLT、XPath 以及 XQuery 函数
- Halaman sebelumnya Elemen XSLT
- Halaman berikutnya Panduan XML
XSLT 2.0, XPath 2.0 dan XQuery 1.0 berbagi l库 fungsi yang sama.
Panduan Referensi Fungsi
Prefix standar ruang nama fungsi adalah:fn:
URI ruang nama fungsi adalah:http://www.w3.org/2005/xpath-functions
Petunjuk:Biasanya digunakan fn:
prefix untuk memanggil fungsi, seperti fn:string()
Walau bagaimanapun, karena fn:
Adalah prefix standar ruang nama, jadi prefix nama fungsi tidak perlu ditambahkan saat dipanggil.
Fungsi akses
Nama | Keterangan |
---|---|
fn:node-name(node) | Kembalikan nama node parameter. |
fn:nilled(node) | Kembalikan nilai boolean yang menentukan apakah node parameter ditolak. |
fn:data(item.item,...) | Menerima urutan item dan kembalikan urutan nilai atom. |
|
Kembalikan nilai atribut base-uri untuk node saat ini atau node yang ditentukan. |
fn:document-uri(node) | Kembalikan nilai atribut document-uri untuk node yang ditentukan. |
Fungsi kesalahan dan trace
Nama | Keterangan |
---|---|
|
Contoh: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Hasil: Kembalikan ke lingkungan pengelolaan luaran http://example.com/test#toohigh serta string "Error: Price is too high". |
fn:trace(value,label) | Digunakan untuk debug query. |
Fungsi tentang nilai
Nama | Keterangan |
---|---|
fn:number(arg) |
Kembalikan nilai parameter. Parameter boleh jadi nilai boolean, string atau sekumpulan 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 angka bulat terkecil yang lebih besar daripada parameter num. Contoh: ceiling(3.14) Hasil: 4 |
fn:floor(num) |
Mengembalikan angka bulat terbesar yang tidak melebihi parameter num. Contoh: floor(3.14) 结果:3 |
fn:round(num) |
Mengurangkan parameter num untuk mendekati angka 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 |
Fungsi-fungsi string
Nama | Keterangan |
---|---|
fn:string(arg) |
Mengembalikan nilai string parameter. Parameter dapat berupa nombor, nilai logis atau kumpulan node. Contoh: string(314) Hasil: "314" |
fn:codepoints-to-string(int,int,...) |
Mengembalikan string berdasarkan susun kod pon. Contoh: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Hasil: 'Thérèse' |
fn:string-to-codepoints(string) |
Mengembalikan susun kod pon berdasarkan string. Contoh: string-to-codepoints("Thérèse") Hasil: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Berdasarkan penghubung kod pon Unicode, jika nilai comp1 sama dengan nilai comp2, kembalikan true (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), jika tidak kembalikan false. |
|
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 penghubung 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: '' |
|
Mengembalikan substring panjang yang ditentukan dari posisi start. Indeks karakter pertama adalah 1. Jika parameter len disingkirkan, maka mengembalikan substring dari posisi start hingga akhir string. Contoh: substring('Beatles',1,4) Hasil: 'Beat' Contoh: substring('Beatles',2) Hasil: 'eatles' |
|
Mengembalikan panjang string yang ditentukan. Jika parameter string tidak disediakan, maka mengembalikan panjang nilai string node saat ini. Contoh: string-length('Beatles') Hasil: 7 |
|
Menghapus ruang kosong di awal dan akhir string yang ditentukan, dan mengganti semua rangkaian ruang internal dengan satu, lalu kembalikan hasil. Jika parameter string tidak disediakan, maka mengendalikan node saat ini. Contoh: normalize-space(' The XML ') Hasil: 'The XML' |
fn:normalize-unicode() | Melaksanakan规范化 Unicode. |
fn:upper-case(string) |
Tukar parameter string kepada huruf besar. Contoh: upper-case('The XML') Hasil: 'THE XML' |
fn:lower-case(string) |
Buat parameter string menjadi 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 dimulai 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) |
Balikkan substring sebelum string2 muncul di dalam string1. Contoh: substring-before('12/10','/') Hasil: '12' |
fn:substring-after(string1,string2) |
Kembalikan substrung setelah string2 muncul di 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 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) | Kembalikan nilai boolean untuk angka, string, atau kumpulan node. |
fn:not(arg) |
Pertama-tama memulihkan parameter menjadi nilai boolean dengan 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 |
Fungsi tentang durasi, tanggal, dan waktu.
Fungsi pemecah komponen tanggal, waktu, dan durasi.
Nama | Keterangan |
---|---|
fn:dateTime(date,time) | Konversi parameter ke tanggal dan waktu. |
fn:years-from-duration(datetimedur) | Kembalikan nilai tahun bagian dalam bentuk angka, digambarkan dalam cara kata standar. |
fn:months-from-duration(datetimedur) | Kembalikan nilai bulan bagian dalam bentuk angka, digambarkan dalam cara kata standar. |
fn:days-from-duration(datetimedur) | Balikan nilai hari bagian parameter, dinyatakan dalam ejaan kata standar. |
fn:hours-from-duration(datetimedur) | Balikan nilai jam bagian parameter, dinyatakan dalam ejaan kata standar. |
fn:minutes-from-duration(datetimedur) | Balikan nilai menit bagian parameter, dinyatakan dalam ejaan kata standar. |
fn:seconds-from-duration(datetimedur) | Balikan nilai menit bagian parameter, dinyatakan dalam ejaan kata standar. |
fn:year-from-dateTime(datetime) |
Balikan nilai tahun bagian lokal parameter. Contoh: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Hasil: 2005 |
fn:month-from-dateTime(datetime) |
Balikan nilai bulan bagian lokal parameter. Contoh: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Hasil: 01 |
fn:day-from-dateTime(datetime) |
Balikan nilai hari bagian lokal parameter. Contoh: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Hasil: 10 |
fn:hours-from-dateTime(datetime) |
Balikan nilai jam bagian lokal parameter. Contoh: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Hasil: 12 |
fn:minutes-from-dateTime(datetime) |
Balikan nilai menit bagian lokal parameter. Contoh: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Hasil: 30 |
fn:seconds-from-dateTime(datetime) |
Balikan nilai detik bagian lokal parameter. Contoh: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Hasil: 0 |
fn:timezone-from-dateTime(datetime) | Kembalikan bahagian zon masa parameter, jika ada. |
fn:year-from-date(date) |
Kembalikan integer bagi bahagian tahun dalam nilai lokal parameter. Contoh: year-from-date(xs:date("2005-04-23")) Hasil: 2005 |
fn:month-from-date(date) |
Kembalikan integer bagi bahagian bulan dalam nilai lokal parameter. Contoh: month-from-date(xs:date("2005-04-23")) Hasil: 4 |
fn:day-from-date(date) |
Kembalikan integer bagi bahagian hari dalam nilai lokal parameter. Contoh: day-from-date(xs:date("2005-04-23")) Hasil: 23 |
fn:timezone-from-date(date) | Kembalikan bahagian zon masa parameter, jika ada. |
fn:hours-from-time(time) |
Kembalikan integer bagi bahagian jam dalam nilai lokal parameter. Contoh: hours-from-time(xs:time("10:22:00")) Hasil: 10 |
fn:minutes-from-time(time) |
Kembalikan integer bagi bahagian minit dalam nilai lokal parameter. Contoh: minutes-from-time(xs:time("10:22:00")) Hasil: 22 |
fn:seconds-from-time(time) |
Kembalikan integer bagi bahagian detik dalam nilai lokal parameter. Contoh: seconds-from-time(xs:time("10:22:00")) Hasil: 0 |
fn:timezone-from-time(time) | Kembalikan bahagian zon masa parameter, jika ada. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Jika parameter timezone kosong, kembalikan dateTime tanpa zon masa. Jika tidak, kembalikan dateTime dengan zon masa. |
fn:adjust-date-to-timezone(date,timezone) |
Jika parameter timezone kosong, kembalikan tarikh tanpa zon masa. Jika tidak, kembalikan tarikh dengan zon masa. |
fn:adjust-time-to-timezone(time,timezone) |
Jika parameter timezone kosong, kembalikan masa tanpa zon masa. Jika tidak, kembalikan time dengan timezone. |
Fungsi yang berhubungan dengan QName
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 |
---|---|
|
Mengembalikan nama node saat ini atau node pertama dalam set node. |
|
Mengembalikan nama node saat ini atau node pertama dalam set node tanpa prefix namespace. |
|
Mengembalikan URI namespace dari node saat ini atau set 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> |
|
Mengembalikan root node dari tree node yang milik node saat ini atau node yang ditentukan. Biasanya node dokumen. |
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,...) |
Jika nilai parameter adalah urutan kosong, kembalikan true, jika tidak kembalikan false. Contoh: empty(remove(("ab", "cd"), 1)) Hasil: false |
fn:exists(item,item,...) |
Jika nilai parameter bukan urutan kosong, kembalikan true, jika tidak kembalikan false. Contoh: exists(remove(("ab"), 1)) Hasil: false |
fn:distinct-values((item,item,...),collation) |
Kembalikan nilai unik 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 - serta 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 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, panjang urutan ditentukan oleh parameter len. Lokasi pertama item 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) | Jika fungsi doc() mengembalikan node dokumen, kembalikan true, jika tidak kembalikan false. |
|
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 diam. |
fn:default-collation() | Kembalikan nilai penghubung baku. |
fn:static-base-uri() | Kembalikan nilai base-uri. |
Fungsi XSLT
Selain itu, ada juga fungsi XSLT bawaan berikut ini:
Nama | Deskripsi |
---|---|
current() | Kembalikan set node yang hanya terdiri dari node saat ini. |
document() | Digunakan untuk mengakses node dalam dokumen XML luar. |
element-available() | Deteksi apakah pemroses XSLT mendukung elemen yang ditentukan. |
format-number() | Mengubah angka menjadi string. |
function-available() | Deteksi apakah pemroses XSLT mendukung fungsi yang ditentukan. |
generate-id() | Kembalikan nilai string yang mengidentifikasi node yang ditentukan. |
key() | Mengambil elemen yang sebelumnya ditandai dengan kalimat <xsl:key>. |
node-set | Mengubah pohon menjadi set node. Set node yang dihasilkan selalu mengandung satu node dan adalah akar pohon. |
system-property() | Kembalikan nilai properti sistem. |
unparsed-entity-uri() | Kembalikan URI entiti yang belum diurai. |
- Halaman sebelumnya Elemen XSLT
- Halaman berikutnya Panduan XML