Home » XML » XML XQuery : Syntax XQuery – Code dan Contohnya

XML XQuery : Syntax XQuery – Code dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

XQuery peka huruf besar kecil. Elemen, atribut, dan variabel XQuery harus berupa nama XML yang valid.

Aturan Sintaks Dasar XQuery

Beberapa aturan sintaks dasar:

  • XQuery peka huruf besar kecil
  • Elemen XQuery, atribut, dan variabel harus berupa nama XML yang valid
  • Nilai string XQuery bisa dalam tanda kutip tunggal atau ganda
  • Variabel XQuery ditentukan dengan $ diikuti dengan nama, mis. $bookstore
  • Komentar XQuery dibatasi oleh (: and :), mis. (: XQuery Comment 🙂

Dokumen Contoh XML

Kita akan menggunakan dokumen “books.xml” pada contoh di bawah ini.

Lihat file “books.xml” di bawah ini.

Contoh :

<?xml version="1.0" encoding="UTF-8"?>
<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" cover="paperback">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

Output :

Ekspresi Bersyarat XQuery

Ekspresi “If-Then-Else” diizinkan di XQuery.

Lihat contoh berikut:

for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>

Catatan tentang sintaks “if-then-else”: tanda kurung di sekitar ekspresi if diperlukan. else diperlukan, tetapi bisa juga hanya else ().

Hasil dari contoh di atas akan menjadi:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>

Perbandingan XQuery

Di XQuery ada dua cara untuk membandingkan nilai.

  1. Perbandingan umum: =,! =, <, <=,>,> =
  2. Perbandingan nilai: eq, ne, lt, le, gt, ge

Perbedaan antara kedua metode perbandingan tersebut ditunjukkan di bawah ini.

Ekspresi berikut mengembalikan nilai true jika ada atribut q yang memiliki nilai lebih dari 10:

$bookstore//book/@q > 10

Ekspresi berikut mengembalikan nilai true jika hanya ada satu atribut q yang dikembalikan oleh ekspresi dan nilainya lebih besar dari 10. Jika lebih dari satu q dikembalikan, kesalahan terjadi:

$bookstore//book/@q gt 10

You may also like