اختيار وتنقية في 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 تكرارات. يمكن أن تحتوي كل تعبير FLWOR على تعليمات for متعددة.
لتحديد عدد التكرارات المحددة في تعليمة 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يرجى استخدامomma لفصل كل تعبير 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