XQuery tanlash
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<100order 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/titleNatija:
<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/titleNatija:
<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!
