ایکس کیو ایچ انتخاب اور فیلٹرنگ

مستند نمونه XML

ما در مثال‌های زیر از این مستند "books.xml" استفاده خواهیم کرد (همان XML فایل‌هایی که در فصل‌های قبلی استفاده شده‌اند).

در مرورگر خود فایل "books.xml" را مشاهده کنید.

انتخاب و فیلتر کردن عناصر

همانطور که در فصل‌های قبلی مشاهده کرده‌اید، ما از عبارت‌های مسیر یا FLWOR برای انتخاب و فیلتر کردن عناصر استفاده می‌کنیم.

لطفاً به عبارت FLWOR زیر نگاه کنید:

برای $x در doc("books.xml")/bookstore/book
حيث $x/price>30
ترتیب بر اساس $x/title
بازگردان $x/title
برای
(اختیاری) پیوند دادن یک متغیر به هر یک از پروژه‌هایی که توسط عبارت in بازگردانده می‌شود
گذارید
(اختیاری)
حيث
(اختیاری) تنظیم یک شرط
ترتیب بر اساس
(اختیاری) تنظیم ترتیب نتایج
بازگرداندن
تعیین محتوایی که در نتیجه بازگردانده می‌شود

دستور for

دستور for می‌تواند متغیرها را به هر یک از پروژه‌هایی که توسط عبارت in بازگردانده می‌شود، پیوند دهد. دستور for می‌تواند یک تکرار را ایجاد کند. می‌توان چندین دستور for در یک عبارت FLWOR وجود داشته باشد.

برای تکرار چندین بار در یک دستور for، می‌توانید ازکلمات کلیدی به :

برای $x در (1 لئن 5)
بازگردان <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. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

در دستور برای نیزمجاز است که چندین درخواست 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>

دستور بگذار:

دستور بگذار می‌تواند تخصیص متغیر را انجام دهد و از تکرار مکرر عبارت‌های مشابه جلوگیری کند. دستور بگذار باعث تکرار نمی‌شود.

بگذار $x := (1 تا 5)
بازگردان <test>{$x}</test>

نتیجه:

<test>1 2 3 4 5</test>

دستور حکم:

دستور حکم برای تعیین یک یا چند شرط (معیار) برای نتایج استفاده می‌شود.

حيث $x/price>30 و $x/price<100

دستور ترتیب:

دستور ترتیب برای تعیین ترتیب نتایج استفاده می‌شود. در اینجا، ما می‌خواهیم نتایج را بر اساس category و title مرتب کنیم:

برای $x در doc("books.xml")/bookstore/book
ترتیب بر اساس $x/@category, $x/title
بازگردان $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>

بازگردان دستور:

بازگردان دستور تعیین می‌کند که چه چیزی باید بازگردانده شود.

برای $x در doc("books.xml")/bookstore/book
بازگردان $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>