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.