انتخاب و فیلتر کردن 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
- لیٹ
- (اختیاری)
- که
- (اختیاری) تعیین یک شرط
- ترتیب بر اساس
- (اختیاری) تنظیم ترتیب نتایج
- بازگشت
- تعیین محتوایی که در نتیجه بازمیگردد
عبارت for
عبارت for میتواند متغیرها را به هر یک از پروژههای بازگشتی توسط عبارت in پیوند دهد. عبارت for میتواند تکرارها را تولید کند. میتوان چندین عبارت for در یک بیان FLWOR وجود داشته باشد.
برای تکرار مشخص次数 در یک عبارت for، میتوانید ازکلمه کلیدی تا :
برای کش در (1 تا 5) return <test>{$x}</test>
نتیجه:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
کلمه کلیدی at قابل استفاده برای محاسبه تکرار:
برای کش در ی در doc("books.xml")/bookstore/book/title بازگشت <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 نیزبسیار در عبارات مجاز استلطفاً از کاما برای جدا کردن هر در عبارت استفاده کنید:
برای کش در (10,20), ی در (100,200) بازگشت <test>کس={کش} اور ی={ی}</test>
نتیجه:
<test>کس=10 اور ی=100</test> <test>کس=10 اور ی=200</test> <test>کس=20 اور ی=100</test> <test>کس=20 اور ی=200</test>
لیٹ کلمات
فرمان 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