Home » XML » XML XQuery : Ekspresi FLWOR – Code dan Contohnya

XML XQuery : Ekspresi FLWOR – Code dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Apa itu FLWOR?

FLWOR (dibaca “flower”) adalah singkatan dari “For, Let, Where, Order by, Return”.

For – memilih urutan node
Let – mengikat urutan ke variabel
Where – menyaring node
Order by – mengurutkan node
Return – apa yang akan dikembalikan (dievaluasi sekali untuk setiap node)

Contoh Dokumen XML

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

Contoh XML :

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

Cara Memilih Node Dari “books.xml” Dengan FLWOR

Lihatlah path expression berikut:

doc("books.xml")/bookstore/book[price>30]/title

Ekspresi di atas akan memilih semua elemen title di bawah elemen book yang berada di bawah elemen bookstore yang memiliki elemen price dengan value yang lebih tinggi dari 30.

Ekspresi FLWOR berikut akan memilih persis sama dengan path expression di atas:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title

Maka hasilnya seperti berikut :

<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>

Dengan FLWOR kita bisa mengurutkan hasilnya seperti di bawah ini :

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

Penjelasan Kode :

  • Klausa for memilih semua elemen book di bawah elemen bookstore ke dalam variabel yang disebut $x.
  • Klausa where hanya memilih elemen book dengan elemen price dengan value lebih dari 30.
  • Klausa order by mendefinisikan urutan-sortir. Akan diurutkan berdasarkan elemen title.
  • Klausa return menentukan apa yang harus dikembalikan. Di sini ia mengembalikan elemen title.

Hasil ekspresi XQuery di atas akan menjadi:

<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

You may also like