Section Artikel
Dokumen Contoh XML
Kita akan menggunakan dokumen “books.xml” pada contoh di bawah ini
Lihat file “books.xml” di bawah ini.
<?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 :

Memilih dan Memfilter Elemen
Kita memilih dan memfilter elemen dengan ekspresi Path atau dengan ekspresi FLWOR.
Lihatlah ekspresi FLWOR berikut:
- for – (opsional) mengikat variabel ke setiap item yang dikembalikan oleh ekspresi in
- let – (opsional)
- where – (opsional) menentukan kriteria
- order by – (opsional) menentukan urutan sortir hasil
- return – menentukan apa yang akan dikembalikan dalam hasil
Klausa For
Klausa for mengikat variabel ke setiap item yang dikembalikan oleh ekspresi in. Klausa for menghasilkan iterasi. Mungkin ada beberapa klausa dalam ekspresi FLWOR yang sama.
Untuk mengulang beberapa kali dalam klausa for, kita dapat menggunakan kata kunci to:
for $x in (1 to 5) return <test>{$x}</test>
Output :
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Kata kunci at dapat digunakan untuk menghitung iterasi:
for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Output :
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>
Diperbolehkan menggunakan lebih dari satu ekspresi di klausa for. Gunakan koma untuk memisahkan setiap ekspresi:
for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test>
Output :
<test>x=10 and y=100</test> <test>x=10 and y=200</test> <test>x=20 and y=100</test> <test>x=20 and y=200</test>
Klausa Let
Klausa let memungkinkan tugas variabel dan menghindari pengulangan ekspresi yang sama berkali-kali. Klausa let tidak menghasilkan iterasi.
let $x := (1 to 5) return <test>{$x}</test>
Output :
<test>1 2 3 4 5</test>
Klausa Where
Klausa where digunakan untuk menentukan satu atau lebih kriteria untuk hasil:
where $x/price>30 and $x/price<100
Klausa Order by
Klausa order by digunakan untuk menentukan urutan pengurutan hasil. Di sini kita akan mengurutkan hasil berdasarkan category dan title:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Output :
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
Klausa Return
Klausa return menentukan apa yang akan dikembalikan.
for $x in doc("books.xml")/bookstore/book return $x/title
Output :
<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>