أحدث البرامج التعليمية وتطوير الشبكة
 

كسكيري اختيار وترشيح


وثيقة مثال 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>