Ekspresi FLWOR XQuery

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

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>
  <harga>30.00</harga>
</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>
  <penulis>James McGovern</penulis>
  <penulis>Per Bothner</penulis>
  <penulis>Kurt Cagle</penulis>
  <penulis>James Linn</penulis>
  <penulis>Vaidyanathan Nagarajan</penulis>
  <tahun>2003</tahun>
  <harga>49.99</harga>
</book>
<book category="WEB">
  <title lang="en">Learning XML</title>
  <penulis>Erik T. Ray</penulis>
  <tahun>2003</tahun>
  <harga>39.95</harga>
</book>
</bookstore>

Lihat berkas "books.xml" di browser Anda.

Bagaimana cara mengambil 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 ber 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

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

XQuery di atas dapat mengekstrak 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>

Predikat

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

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

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

XQuery dapat mengekstrak 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>