Hàm của XQuery
- Trang trước Chọn XQuery
- Trang tiếp theo Tóm tắt XQuery
XQuery 1.0, XPath 2.0 và XSLT 2.0 chia sẻ cùng một thư viện hàm.
Hàm của XQuery
XQuery chứa hơn 100 hàm nội bộ. Các hàm này có thể được sử dụng cho giá trị chuỗi, giá trị số, so sánh ngày tháng và giờ, thao tác với nút và QName, thao tác với chuỗi, giá trị logic, v.v. Bạn cũng có thể định nghĩa hàm của riêng mình trong XQuery.
Hàm nội bộ XQuery
URI không gian tên hàm XQuery:
http://www.w3.org/2005/02/xpath-functions
Tiền tố mặc định của không gian tên hàm là fn:.
Lưu ý:Hàm thường được gọi bằng tiền tố fn:, ví dụ fn:string(). Tuy nhiên, do fn: là tiền tố mặc định của không gian tên, vì vậy tên hàm không cần sử dụng tiền tố khi gọi.
Bạn có thể tìm thấy toàn bộ《Tài liệu tham khảo hàm XQuery》。
Ví dụ gọi hàm
Gọi hàm có thể được sử dụng cùng với biểu thức. Xem ví dụ dưới đây:
Ví dụ 1: Trong phần tử
<name>{upper-case($booktitle)}</name>
Ví dụ 2: Trong điều kiện của biểu thức đường dẫn
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Ví dụ 3: Trong câu lệnh let
let $name := (substring($booktitle,1,4))
Hàm tùy chỉnh của XQuery
Nếu không tìm thấy hàm XQuery cần thiết, bạn có thể viết hàm của riêng mình.
Có thể định nghĩa hàm tùy chỉnh trong truy vấn hoặc trong thư viện độc lập.
Cú pháp
declare function tiền tố:Tên hàm($tham số AS loại dữ liệu)
AS loại dữ liệu trả về
{
(: ...mã hàm của hàm... :)
;
Lưu ý về hàm tùy chỉnh của người dùng:
- Vui lòng sử dụng từ khóa declare function
- Tên hàm phải sử dụng tiền tố
- Loại dữ liệu của tham số thường nhất quán với loại dữ liệu được định nghĩa trong XML Schema
- Phần thân của hàm phải được bao bọc bởi dấu ngoặc花括
Ví dụ về hàm tùy chỉnh được khai báo trong truy vấn:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Dưới đây là ví dụ về việc gọi hàm trên :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Trang trước Chọn XQuery
- Trang tiếp theo Tóm tắt XQuery