Mẫu XQuery

Trong phần này, hãy cùng nghiên cứu một ví dụ để học một số cú pháp cơ bản của XQuery.

Ví dụ XML

Chúng ta sẽ sử dụng tài liệu XML này trong ví dụ dưới đây.

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>
<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>
</bookstore>

Xem tệp "books.xml" trong trình duyệt của bạn.

Làm thế nào để chọn nút từ "books.xml"?

Hàm

XQuery sử dụng hàm để trích xuất dữ liệu từ tài liệu XML.

doc() được sử dụng để mở tệp "books.xml":

doc("books.xml")

Biểu thức đường dẫn

XQuery sử dụng biểu thức đường dẫn để di chuyển qua các phần tử trong tài liệu XML.

Dưới đây là biểu thức đường dẫn để chọn tất cả các phần tử title trong tệp "books.xml":

doc("books.xml")/bookstore/book/title

(Chọn phần tử bookstore, chọn tất cả các phần tử book trong phần tử bookstore, và chọn tất cả các phần tử title trong mỗi phần tử book)

XQuery trên có thể trích xuất dữ liệu sau đây:

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

Điều kiện

XQuery sử dụng điều kiện để限定 từ dữ liệu được trích xuất từ tài liệu XML.

Dưới đây là điều kiện để chọn tất cả các phần tử book trong phần tử bookstore và giá trị của phần tử price phải nhỏ hơn 30:

doc("books.xml")/bookstore/book[giá<30]

XQuery này có thể trích xuất dữ liệu sau đây:

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>