XQuery - Aplikasi Pertama
Contoh
Berikut adalah contoh dokumen XML yang berisi catatan dari sebuah toko buku dari berbagai buku.
books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book category="JAVA">
<title lang="en">Learn Java in 24 Hours</title>
<author>Robert</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="DOTNET">
<title lang="en">Learn .Net in 24 hours</title>
<author>Peter</author>
<year>2011</year>
<price>70.50</price>
</book>
<book category="XML">
<title lang="en">Learn XQuery in 24 hours</title>
<author>Robert</author>
<author>Peter</author>
<year>2013</year>
<price>50.00</price>
</book>
<book category="XML">
<title lang="en">Learn XPath in 24 hours</title>
<author>Jay Ban</author>
<year>2010</year>
<price>16.50</price>
</book>
</books>
Berikut ini adalah contoh dokumen Xquery yang berisi ekspresi query untuk dieksekusi pada dokumen XML di atas. Tujuannya adalah untuk mendapatkan elemen judul dari node XML yang harganya lebih dari 30.
books.xqy
for $x in doc("books.xml")/books/book where $x/price>30
return $x/title
Hasil
<title lang="en">Learn .Net in 24 hours</title>
<title lang="en">Learn XQuery in 24 hours</title>
Verifikasi Hasil
Untuk memverifikasi hasilnya, ganti konten books.xqy (diberikan di bab Pengaturan Lingkungan ) dengan ekspresi XQuery di atas dan jalankan program java XQueryTester.
Ekspresi XQuery
Mari kita pahami setiap bagian dari ekspresi XQuery di atas.
Penggunaan fungsi
doc("books.xml")
doc () adalah salah satu fungsi XQuery yang digunakan untuk menemukan sumber XML. Di sini kami telah melewati "books.xml". Mempertimbangkan jalur relatif, books.xml harus berada di jalur yang sama dengan tempat books.xqy ada.
Penggunaan ekspresi XPath
doc("books.xml")/books/book
XQuery sangat menggunakan ekspresi XPath untuk menemukan bagian XML yang diperlukan untuk melakukan pencarian. Di sini kami telah memilih semua node buku yang tersedia di bawah node buku.
Iterasi objek
for $x in doc("books.xml")/books/book
XQuery memperlakukan data xml sebagai objek. Dalam contoh di atas, $ x mewakili node yang dipilih, sedangkan for loop melakukan iterasi atas kumpulan node.
Terapkan kondisinya
where $x/price>30
Karena $ x mewakili node yang dipilih, "/" digunakan untuk mendapatkan nilai elemen yang diperlukan; Klausa "di mana" digunakan untuk memberi kondisi pada hasil pencarian.
Kembalikan hasilnya
return $x/title
Karena $ x mewakili node yang dipilih, "/" digunakan untuk mendapatkan nilai elemen yang diperlukan, harga, judul; Klausa "return" digunakan untuk mengembalikan elemen dari hasil pencarian.