ตัวอย่าง XML เอกสาร
เราจะใช้ "books.xml" เอกสารในตัวอย่างด้านล่าง (same XML file as in the previous chapters)
ดู "books.xml" แฟ้มในเบราว์เซอร์ของคุณ
การเลือกและการกรององค์ประกอบ
ในฐานะที่เราได้เห็นในบทก่อนหน้านี้เราจะเลือกและองค์ประกอบที่มีทั้งการแสดงออกหรือเส้นทางด้วยการแสดงออก FLWOR กรอง
ดูที่การแสดงออก FLWOR ต่อไปนี้:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- สำหรับ - (optional) ผูกตัวแปรแต่ละรายการที่ส่งคืนโดยในการแสดงออก
- ให้ - (optional)
- ที่ - (optional) ระบุเกณฑ์
- สั่งซื้อโดย - (optional) ระบุการจัดเรียงลำดับของผล
- การกลับมา - ระบุว่าจะกลับมาในผล
สำหรับข้อ
สำหรับข้อผูกตัวแปรแต่ละรายการที่ส่งคืนโดยในการแสดงออก เพื่อให้ได้ผลลัพธ์ในประโยคซ้ำ สามารถมีได้หลายข้อในการแสดงออก FLWOR เดียวกัน
ห่วงหมายเลขเฉพาะของครั้งในประโยคสำหรับคุณอาจใช้ 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 $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 $x := (1 to 5)
return <test>{$x}</test>
ผล:
<test>1 2 3 4 5</test>
ที่ข้อ
ประโยคที่ถูกใช้เพื่อระบุหนึ่งหรือมากกว่าเกณฑ์สำหรับการผล:
where $x/price>30 and $x/price<100
การสั่งซื้อโดยข้อ
การสั่งซื้อโดยข้อถูกใช้เพื่อระบุลำดับการจัดเรียงของผล ที่นี่เราต้องการสั่งซื้อผลที่ตามประเภทและชื่อเรื่อง:
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>
การกลับมาข้อ
ข้อส่งกลับระบุสิ่งที่จะถูกส่งกลับ
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>