Contoh XQuery

Dalam bab ini, kita akan belajar beberapa sintaks dasar XQuery melalui contoh.

Dokumen Contoh XML

Kami akan menggunakan dokumen XML ini dalam contoh di bawah.

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

Lihat fail "books.xml" di pelayar anda.

Bagaimana untuk memilih node daripada "books.xml"?

Fungsi

XQuery menggunakan fungsi untuk mengambil data dari dokumen XML.

doc() digunakan untuk membuka fail "books.xml":

doc("books.xml")

Ekspresi laluan

XQuery menggunakan ekspresi laluan untuk navigasi melalui elemen dalam dokumen XML.

Ekspresi laluan di bawah ini digunakan untuk memilih semua elemen title di dalam fail "books.xml":

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

(/bookstore memilih elemen bookstore, /book memilih semua elemen book di bawah elemen bookstore, dan /title memilih semua elemen title di bawah setiap elemen book)

XQuery di atas boleh mengambil data di bawah ini:

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

Penyata

XQuery menggunakan penyata untuk membatasi data yang diambil dari dokumen XML.

Penyata di bawah ini digunakan untuk memilih semua elemen book di bawah elemen bookstore, dan nilai elemen price di bawah book harus kurang dari 30:

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

XQuery boleh mengambil data di bawah ini:

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