Latest web development tutorials

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

مستندات مثيل XML

في المثال التالي سوف نستمر في استخدام هذا "books.xml" (ملف XML نفسه والقسم المستخدمة أعلاه) وثيقة.

انظر ملف "books.xml" في المتصفح الخاص بك .


تحديد وتصفية العناصر

كما رأينا في الفصل السابق، ونحن نستخدم التعبير FLWOR أو تعبير مسار لتحديد وفلتر.

النظر في التعبير FLWOR التالية:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • ل- (اختياري) إلى كل بند من البنود المجمعة إرجاعها من قبل التعبير في متغير
  • السماح - (اختياري)
  • حيث - (اختياري) اشترط
  • ترتيب حسب - (اختياري) تعيين ترتيب في النتائج
  • العودة - الأحكام الواردة في النتائج التي تم إرجاعها المحتوى

للبيان

بيان للمتغير ترتبط كل بند يتم إرجاعها من قبل في التعبير. لالتكرار بيان. قد تكون هناك مضاعفات لنفس البيان في التعبير FLWOR.

لعدد محدد من المرات في لتصريح لحلقة، يمكنك استخدام الكلمات الرئيسية ل:

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>

كلمات يمكن أن تستخدم لحساب التكرار في:

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>