مثال (XQuery Example)
اینجا با یک «مثال XQuery» جلو می رویم. XQuery زبان پرس وجو برای XML است. مثل وقتی در دفتر مدرسه دنبال اسم ها می گردی، اینجا هم دنبال گره ها می گردیم.
سند نمونه XML
این فایل books.xml در مثال ها استفاده می شود.
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
چگونه نودها را انتخاب کنیم؟
تابع ها (Functions)
تابع doc() یک فایل XML را باز می کند. مثل بازکردن دفتر کلاسی.
doc("books.xml")
عبارت های مسیر (Path Expressions)
با مسیر، بین عناصر حرکت می کنیم. مثل راهروهای مدرسه.
doc("books.xml")/bookstore/book/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>
پرِدیکیت ها (Predicates)
پرِدیکیت یعنی شرط داخل براکت. داده خروجی را محدود می کند.
doc("books.xml")/bookstore/book[price < 30]
نتیجه فیلتر قیمت کمتر از 30 دلار:
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
گام های عملی
- فایل
books.xmlرا ذخیره کن. - کوئری مسیر عنوان ها را اجرا کن.
- پرِدیکیت قیمت را تغییر بده و خروجی را ببین.
نکته: همیشه مسیر را از ریشه درست بنویس. سپس شرط را ساده نگه دار.
مطالعه بیشتر: مقدمه XQuery · عبارت FLWOR در XQuery · مثال XQuery.
جمع بندی سریع
- مثال XQuery بهترین شروع است.
doc()فایل XML را باز می کند.- مسیرها پیمایش گره ها را ممکن می کنند.
- پرِدیکیت ها داده را فیلتر می کنند.