Contoh XQuery

Dalam bagian ini, mari kita belajar beberapa sintaks dasar XQuery melalui studi kasus.

Contoh XML

Kami akan menggunakan dokumen XML ini dalam contoh di bawah ini.

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <judul lang="en">Everyday Italian</judul>
  <author>Giada De Laurentiis</author>
  <tahun>2005</tahun>
  <price>30.00</price>
</book>
<book kategori="ANAK-AnAK">
  <judul lang="en">Harry Potter</judul>
  <pengarang>J K. Rowling</pengarang>
  <tahun>2005</tahun>
  <harga>29.99</harga>
</book>
<book category="WEB">
  <judul lang="en">XQuery Kick Start</judul>
  <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">
  <judul lang="en">Learning XML</judul>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>
</bookstore>

Lihat berkas "books.xml" di browser Anda.

Bagaimana untuk memilih node dari "books.xml"?

Fungsi

XQuery menggunakan fungsi untuk mengekstrak data dari dokumen XML.

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

doc("books.xml")

Ekspresi jalur

XQuery menggunakan ekspresi jalur untuk navigasi melalui dokumen XML.

Ekspresi jalur di bawah ini digunakan untuk memilih semua elemen title di dalam berkas "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 dapat mengekstrak data berikut:

<judul lang="en">Everyday Italian</judul>
<judul lang="en">Harry Potter</judul>
<judul lang="en">XQuery Kick Start</judul>
<judul lang="en">Learning XML</judul>

Predikat

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

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

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

XQuery di atas dapat mengekstrak data berikut:

<book kategori="ANAK-AnAK">
  <judul lang="en">Harry Potter</judul>
  <pengarang>J K. Rowling</pengarang>
  <tahun>2005</tahun>
  <harga>29.99</harga>
</book>