انتخاب و فیلتر در XQuery
- صفحه قبلی افزودن XQuery
- صفحه بعدی توابع XQuery
مستند نمونه XML
ما در مثالهای زیر از این مستند "books.xml" (که با فایل XML مورد استفاده در فصلهای بالا مشابه است) استفاده خواهیم کرد.
انتخاب و فیلتر کردن عناصر
مانند آنچه در فصلهای قبلی مشاهده کردهایم، ما از عبارتهای مسیر یا عبارتهای FLWOR برای انتخاب و فیلتر کردن عناصر استفاده میکنیم.
لطفاً عبارت FLWOR زیر را مشاهده کنید:
for $x in doc("books.xml")/bookstore/book که $x/price>30 ترتیب بر اساس $x/title return $x/title
- برای
- (اختیاری) متغیرها را به هر یک از پروژههای بازگردانده شده توسط عبارت in متصل کنید
- let
- (اختیاری)
- که
- (اختیاری) تعیین یک شرط
- ترتیب بر اساس
- (اختیاری) تنظیم ترتیب نتایج
- بازگردان
- تعیین محتوایی که در نتیجه بازگردانده میشود
عبارت for
عبارت for میتواند متغیرها را به هر یک از پروژههای بازگردانده شده توسط عبارت in متصل کند. عبارت 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 بازگردان <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) بازگردان <test>x={$x} و y={$y}</test>
نتیجه:
<test>x=10 و y=100</test> <test>x=10 و y=200</test> <test>x=20 و y=100</test> <test>x=20 و 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>
- صفحه قبلی افزودن XQuery
- صفحه بعدی توابع XQuery