XML

XML XQuery : Syntax XQuery – Code dan Contohnya

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

Hanifah Nurbaeti