ການເລືອກ ແລະ ການດຶງດູດ XQuery

ເອກະສານພາຍໃຕ້ XML

ພວກເຮົາຈະສືບຕໍ່ໃຊ້ເອກະສານ "books.xml" ພາຍໃຕ້ຄວາມຄິດຂອງພວກເຮົາ (ຄືກັບເອກະສານ XML ທີ່ໃຊ້ໃນຫົວຂໍ້ກ່ອນໜ້ານີ້).

ກວດສາ "books.xml" ອີກດ້ວຍບານຂອງທ່ານ.

ການເລືອກແລະກວດກາສິ່ງ

ຄືກັບທີ່ພົບໃນວັນນະຄະດີກ່ອນໜ້ານີ້ ພວກເຮົາໃຊ້ການສະແດງຕາມວິສະວະກອນຫົນສະແດງຫຼື FLWOR 表达式ເພື່ອເລືອກແລະກວດກາສິ່ງ.

ການເບິ່ງ FLWOR 表达式ລາຍລະອຽດລົງມາດຕະຫລາດ

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
for
(ທາງພາສາ) ການມັດສະນະພາບຫາຂໍ້ມູນທີ່ມາຈາກ in 表达式
let
(ທາງພາສາ)
where
(ທາງພາສາ) ກໍານົດຂໍ້ມູນວ່າຈະຖືກຈັດການ
order by
(ທາງພາສາ) ການຈັດການຈົນສັນຍາລະບຽບຜົນ
return
ກໍານົດຂໍ້ມູນທີ່ຈະຖືກກັບຄືນໃນຜົນ

for 语句

for 语句ສາມາດມັດສະນະພາບຫາຂໍ້ມູນທີ່ມາຈາກການລະລາຍ in 表达式. for 语句ສາມາດຜະລິດການລະລາຍ. for 语句ສາມາດມີ for 语句ຫຼາຍຄັ້ງໃນ FLWOR 表达式.

ສຳລັບການລະຫວ່າງການລະລາຍຄັ້ງສັ່ງ for ຄັ້ງສັ່ງຄວນລະລາຍຄັ້ງສັ່ງຄັ້ງສັ່ງຄຳສັ່ງ to :

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

ຜົນຄະແນນ:

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

ຄຳສັ່ງ at ສາມາດນຳໃຊ້ສຳລັບການຄາດຄະແນນ

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

ຜົນຄະແນນ:

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

ຢູ່ໃນຄຳສັ່ງ forສາມາດມີຫຼາຍຄຳເວີກ inການໃຊ້ຄຳເວີກຄົນທີ່ in ກໍານົດກັນ

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

ຜົນຄະແນນ:

<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

ຖະແຫຼງການ let ສາມາດຈະຈັດການສັບສົນປະເພດຫົວຂໍ້ ແລະ ຫຼືຫຼີກຫຼົງຄືນຂອງຂອງຂອງຂອງຂອງຂອງການສະແດງຂຶ້ນຈາກການທົດລອງ. ຖະແຫຼງການ let ບໍ່ຈະນຳໄປສູ່ການກະຕຸ້ນ.

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

ຜົນຄະແນນ:

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

ຖະແຫຼງການ where

ຖະແຫຼງການ where ໄດ້ປະກາດຂອງຂອງການຕັ້ງຂໍ້ກຳນົດສຳລັບຜົນ. ພວກເຮົາຈະຕັ້ງຂໍ້ກຳນົດເຫຼົ່ານັ້ນ:

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

ຖະແຫຼງການ order by

ຖະແຫຼງການ order by ໄດ້ປະກາດຂອງຂອງຂອງຂອງຂອງຂອງການຈັດການຂອງຜົນ. ພວກເຮົາຈະຈັດການຜົນຕາມ category ແລະ title:

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

ຜົນຄະແນນ:

<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

ຖະແຫຼງການ return ໄດ້ສະແດງຂອງຂັ້ນການທີ່ຈະຖືກກັບຄືນ.

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

ຜົນຄະແນນ:

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