Chọn và lọc trong XQuery
- Trang trước Thêm XQuery
- Trang tiếp theo Hàm trong XQuery
Tài liệu ví dụ XML
Chúng ta sẽ tiếp tục sử dụng tài liệu "books.xml" trong ví dụ dưới đây (cùng với tệp XML được sử dụng trong các chương trước).
Chọn và lọc phần tử
Như đã thấy trong các chương trước, chúng ta sử dụng biểu thức đường dẫn hoặc biểu thức FLWOR để chọn và lọc các phần tử.
Xin xem biểu thức FLWOR dưới đây:
for $x in doc("books.xml")/bookstore/book nếu $x/price>30 sắp xếp theo $x/title return $x/title
- for
- (tùy chọn) Gắn biến với mỗi mục được trả về bởi biểu thức in
- let
- (tùy chọn)
- nếu
- (tùy chọn) Đặt một điều kiện
- sắp xếp theo
- (tùy chọn) Đặt thứ tự sắp xếp của kết quả
- trả về
- định nghĩa nội dung trả về trong kết quả
câu lệnh for
câu lệnh for có thể gắn biến với mỗi mục được trả về bởi biểu thức in. Câu lệnh for có thể tạo ra lặp lại. Có thể có nhiều câu lệnh for trong cùng một biểu thức FLWOR.
Nếu bạn muốn lặp lại một số lần cụ thể trong câu lệnh for, bạn có thể sử dụngtừ khóa đến :
với $x trong (1 đến 5) return <test>{$x}</test>
Kết quả:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
từ khóa tại dùng để tính toán lặp lại:
với $x tại $i trong doc("books.xml")/bookstore/book/title trả về <book>{$i}. {data($x)}</book>
Kết quả:
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Học XML</book>
trong câu lệnh for cũng vậycho phép nhiều biểu thức inVui lòng sử dụng dấu phẩy để phân cách mỗi biểu thức in:
với $x trong (10,20), $y trong (100,200) trả về <test>x={$x} và y={$y}</test>
Kết quả:
<test>x=10 và y=100</test> <test>x=10 và y=200</test> <test>x=20 và y=100</test> <test>x=20 và y=200</test>
câu lệnh let
Câu lệnh let có thể hoàn thành việc phân phối biến và tránh việc lặp lại nhiều lần cùng một biểu thức. Câu lệnh let sẽ không gây ra việc lặp lại.
let $x := (1 to 5) return <test>{$x}</test>
Kết quả:
<test>1 2 3 4 5</test>
Câu lệnh where
Câu lệnh where được sử dụng để đặt một hoặc nhiều điều kiện (criteria) cho kết quả.
where $x/price>30 and $x/price<100
Câu lệnh order by
Câu lệnh order by được sử dụng để quy định thứ tự sắp xếp của kết quả. Ở đây, chúng ta sẽ sắp xếp kết quả dựa trên category và title:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Kết quả:
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
Câu lệnh return:
Câu lệnh return quy định nội dung cần trả về.
for $x in doc("books.xml")/bookstore/book return $x/title
Kết quả:
<title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Trang trước Thêm XQuery
- Trang tiếp theo Hàm trong XQuery