XQuery tanlash


ULASHISH

Misol uchun XML hujjat

Quyidagi misollarda "books.xml" hujjatidan foydalanamiz (oldingi boblardagi XML faylning o‘zi).

"books.xml" faylini brauzeringizda ko‘ring.


Elementlarni tanlash va filtrlash

Oldingi boblarda ko‘rganimizdek, elementlarni yo yo‘l ifodasi (Path expression), yo FLWOR ifodasi yordamida tanlaymiz va filtrlaymiz.

Quyidagi FLWOR ifodasiga qarang:

for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
  • for - (ixtiyoriy) in ifodasi qaytargan har bir elementga (item) o‘zgaruvchini bog‘laydi
  • let - (ixtiyoriy)
  • where - (ixtiyoriy) shartni belgilaydi
  • order by - (ixtiyoriy) natijaning saralash tartibini belgilaydi
  • return - natijada nima qaytarilishini belgilaydi

for bandi

for bandi in ifodasi qaytargan har bir elementga (item) o‘zgaruvchini bog‘laydi. for bandi iteratsiyaga olib keladi. Bitta FLWOR ifodasida bir nechta for bandi bo‘lishi mumkin.

for bandida siklni ma’lum son marta takrorlash uchun to kalit so‘zidan foydalanishingiz mumkin:

for $x in (1 to 5) return <test>{$x}</test>

Natija:

<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>

Iteratsiyalarni sanash uchun at kalit so‘zidan foydalanish mumkin:

for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>

Natija:

<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>

for bandida bittadan ortiq in ifodasi bo‘lishiga ham ruxsat beriladi. Har bir in ifodasini ajratish uchun verguldan foydalaning:

for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test>

Natija:

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


let bandi

let bandi o‘zgaruvchilarga qiymat berish imkonini beradi va bir xil ifodani ko‘p marta takrorlashdan xalos qiladi. let bandi iteratsiyaga olib kelmaydi.

let $x := (1 to 5) return <test>{$x}</test>

Natija:

<test>1 2 3 4 5</test>

where bandi

where bandi natija uchun bir yoki bir nechta shartni belgilashda ishlatiladi:

where $x/price>30 and $x/price<100

order by bandi

order by bandi natijaning saralash tartibini belgilash uchun ishlatiladi. Bu yerda natijani category va title bo‘yicha tartiblamoqchimiz:

for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title

Natija:

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

return bandi

return bandi nima qaytarilishi kerakligini belgilaydi.

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

Natija:

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

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!