انتخاب و فیلتر کردن در XQuery
- صفحه قبلی افزودن XQuery
- صفحه بعدی توابع XQuery
مستند نمونه XML
ما در مثالهای زیر از این مستند "books.xml" استفاده خواهیم کرد (همان XML فایل استفاده شده در فصلهای قبل است).
انتخاب و فیلتر کردن عناصر
همانطور که در فصلهای قبل مشاهده کردهاید، ما از عبارتهای مسیر یا FLWOR برای انتخاب و فیلتر کردن عناصر استفاده میکنیم.
لطفاً به عبارت FLWOR زیر نگاه کنید:
برای $x در doc("books.xml")/bookstore/book حيث $x/price>30 ترتیب بر اساس $x/titel return $x/title
- برای
- (اختیاری) پیوند دادن یک متغیر به هر یک از مواردی که توسط عبارت in بازگشتیشده است
- گذاری
- (اختیاری)
- حيث
- (اختیاری) تنظیم یک شرط
- ترتیب بر اساس
- (اختیاری) تنظیم ترتیب نتایج
- بازگرداندن
- تعیین محتوایی که در نتیجه بازمیگردد
دستور for
دستور for میتواند متغیرها را به هر یک از مواردی که توسط درعبارت بازگشتی بازگشتیشده است، پیوند دهد. دستور for میتواند یک چرخه تکرار ایجاد کند. میتوان چندین دستور for در یک عبارت FLWOR وجود داشت.
برای تکرار مشخصشده در یک دستور for، میتوانید ازکلمات کلیدی به :
برای $x در (1 به 5) return <test>{$x}</test>
نتیجه:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
واژه کلیدی at قابل استفاده برای محاسبه تکرارها:
برای $x در $i در doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
نتیجه:
<book>1. ای탈یایی روزانه</book> <book>2. هری پاتر</book> <book>3. راهنمای شروع XQuery</book> <book>4. یادگیری XML</book>
در بخش for نیزممکن است چندین عبارت in وجود داشته باشدلطفاً از کاما برای جدا کردن هر عبارت in استفاده کنید:
برای $x در (10,20), $y در (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 مرتب کنیم:
برای $x در doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
نتیجه:
<title lang="en">Harry Potter</title> <title lang="fa">ای탈یایی روزانه</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
بخش return:
بخش return محتوایی که باید بازگردانده شود را تعیین میکند.
برای $x در doc("books.xml")/bookstore/book return $x/title
نتیجه:
<title lang="fa">ای탈یایی روزانه</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- صفحه قبلی افزودن XQuery
- صفحه بعدی توابع XQuery