Latest web development tutorials

Fungsi XQuery

XQuery 1.0, XPath 2.0 dan XSLT 2.0 berbagi perpustakaan yang sama.


Fungsi XQuery

XQuery berisi lebih dari 100 built-in fungsi. Fungsi ini dapat digunakan untuk nilai-nilai string, numerik, tanggal dan waktu perbandingan, simpul dan manipulasi QName, urutan manipulasi, nilai-nilai Boolean, dan sebagainya. Anda juga dapat menentukan fungsi sendiri di XQuery.


XQuery built-in fungsi

XQuery fungsi namespace URI:

http://www.w3.org/2005/02/xpath-functions

Fungsi standar namespace prefix adalah fn:.

Tip: call awalan, seperti fn :: fungsi seringkali melalui fn tali (). Namun, karena fn: adalah awalan default namespace, nama fungsi tidak perlu menggunakan awalan saat dipanggil.

Anda dapat menemukan lengkap "dalam tutorial XPath kami built-in Fungsi XQuery Referensi manual ."


Contoh fungsi panggilan

Fungsi panggilan dapat digunakan dengan ekspresi. Perhatikan contoh berikut:

Contoh 1: Unsur

<name>{upper-case($booktitle)}</name>

Contoh 2: Dalam ekspresi jalan di predikat

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Contoh 3: membiarkan pernyataan

let $name := (substring($booktitle,1,4))


fungsi User-didefinisikan XQuery

Jika Anda tidak dapat menemukan fungsi XQuery yang diperlukan, Anda dapat menulis fungsi sendiri.

Atau pengguna dapat menentukan fungsi kustom query database yang terpisah.

tatabahasa

declare function前缀:函数名($参数 AS 数据类型)
AS返回的数据类型
{
...函数代码...
}

Tentang ditetapkan pengguna fungsi Catatan:

  • Silakan gunakan fungsi declare kata kunci
  • nama fungsi harus menggunakan awalan
  • Jenis Data parameter umumnya konsisten dengan data yang didefinisikan dalam XML jenis Skema
  • Fungsi tubuh harus dikelilingi oleh kurung kurawal

Dalam sebuah pernyataan permintaan contoh fungsi user-defined:

declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
AS xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}

Below is an example of how to call the function above:

<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>