subject:for $value at $index in doc("filename.xml")xpath
let $xpath := xpath
where xpath = "ค่าข้อมูล"
order by xpath ascending | descending
return tagXml | xpath
content:หลักการการทำงานคือ ใช้ในการผูกค่ากับตัวแปร โดยใช้คำสั่ง for หรือ let
โดยค่าในที่นี้หมายถึง node ต่างๆ ในเอกสาร xml
ซึ่งผลลัพธ์ของการผูกค่าเรียกว่า tuple แปลว่า คู่ของตัวแปร กับ ค่าของตัวแปร
โดย for ใช้กำหนดค่าให้ตัวแปรทีละค่าในลักษณะวนซ้ำ
( สามาถกำหนดให้เป็น loop หลายชั้นได้ โดยการ comma ดังตัวอย่างอันหนึ่ง )
โดย $value ใช้เก็บค่าที่ได้ และ $index ใช้เก็บตำแหน่งของค่านั้น
โดย let ใช้กำหนดค่าทั้งหมดให้ตัวแปร โดยไม่มีการวนซ้ำ
โดย where ใช้กำหนดเงื่อนไข
โดย order by ใช้กำหนดการเรียงลำดับ
โดย return ใช้กำหนดค่าที่จะคืนกลับ
example:<root>{
for $value at $index in doc("filename.xml")//website
let $protocol := $value/domain/protocol
let $name := $value/domain/name
let $country := $value/country
return <website position="{$index}" protocol="{string($protocol)}" country="{string($country)}">{string($name)}</website>
}</root>