با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به صورت جامع و مفصل با انواع گره در XPath آشنا شدیم و روابط میان گره های موجود در XPath با جزئیات مفصل تشریح گردید. در ادامه این سر فصل آموزشی، آموزش کار با سینتکس XPath را برای آشنایی بیشتر با XPath به علاقمندان آن ارائه می کنیم.
XPath از عبارات مسیر برای انتخاب گره ها یا گره ها در یک سند XML استفاده می کند.
این گره ها از طریق دنبال کردن path یا steps انتخاب می شوند.
ما از سند XML زیر در نمونه های آتی استفاده خواهیم کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore> |
همان طور که قبلاً هم به آن اشاره شد XPath از عبارات مسیر برای انتخاب گره در یک سند XML استفاده می کند و این گره ها از طریق دنبال کردن path یا steps انتخاب می شوند.
در ادامه می توانید رایج ترین path expressions یا عبارت های مسیر را ببینید.
عبارت | توضیحات |
nodename | این عبارت همه گره ها را با نام “nodename” انتخاب می نماید. |
/ | این عبارت انتخاب گره ها را از ریشه انجام می دهد. |
// | این عبارت گره های فعلی را با توجه جایی که قرار دارند انتخاب می نماید. |
. | این عبارت گره فعلی را انتخاب می کند. |
.. | این عبارت والد یا parent گره فعلی را بر می گزیند. |
@ | این عبارت ویژگی ها یا attributes را انتخاب می کند. |
در جدول زیر بعضی عبارات مسیر و نتیجه عبارات ذکر شده است:
عبارت مسیر Path Expression | نتیجه |
bookstore | تمام گره ها را با نام “bookstore” انتخاب می کند. |
bookstore/ | ریشه های عنصر bookstore را انتخاب می نماید. نکته: اگر مسیر با یک اسلش (/) شروع شود در آن صورت آن گره همیشه به عنوان یک مسیر مطلق یا absolute path نمایش داده خواهد شد. |
bookstore/book | تمام عناصر book که children های bookstore هستند را انتخاب می کند. |
book// | همه عناصر book را بدون توجه به جایی که در سند هستند، انتخاب می کند |
bookstore//book | تمام عناصر bookstore را که به نحوی نواده یا descendant هستند را بدون توجه به جایی که این عناصر bookstore قرار دارند؛ انتخاب می نماید. |
lang@// | همه ویژگی ها یا attributes هایی را که به نام lang هستند را انتخاب می نماید. |
پیش بینی ها یا Predicates برای پیدا کردن یک گره خاص یا گره ای که حاوی مقدار خاصی هستند استفاده می شوند.
پیش بینی ها همیشه به شکل مربع جاسازی شده اند.
در جدول زیر برخی از عبارات مسیر با پیش فرض ها و نتیجه آن ها بیان شده اند:
عبارت مسیر Path Expression | نتیجه |
[/bookstore/book[1 | اولین عنصر کتاب که کودک عنصر کتابفروشی است را انتخاب می کند. توجه: در IE 5،۶،۷،۸،۹ اولین گره [۰] است، اما بر اساس W3C، آن [۱] است. برای حل این مشکل در اینترنت اکسپلورر، SelectionLanguage را روی XPath تنظیم کنید:در جاوا اسکریپت: (“xml.setProperty (“SelectionLanguage”، “XPath |
[/bookstore/book[last() | آخرین عنصر book که عنصر child از bookstore است را انتخاب می کند. |
[/bookstore/book[last()-1 | آخرین عنصر book که عنصر child از bookstore است را انتخاب می کند. |
[/bookstore/book[position()<3 | اولین دو عنصر book که children های عنصر bookstore هستند را انتخاب می کند. |
[//title[@lang | تمام عناصر title را که دارای یک ویژگی یا attribute با نام lang هستند را انتخاب می کند. |
[//title[@lang=’en’ | تمام عناصر title را که دارای ویژگی “lang” با مقدار “en” است انتخاب می کند. |
[/bookstore/book[price>35.00 | تمام عناصر book عنصر bookstore را که دارای یک عنصر قیمت price با ارزش بیش از ۳۵٫۰۰ هستند انتخاب می کند |
[/bookstore/book[price>35.00]/title | تمام عناصر title عنصر bookstore را که دارای یک عنصر قیمت price با ارزش بیش از ۳۵٫۰۰ هستند انتخاب می کند |
wildcards XPath می تواند برای انتخاب گره های ناشناخته XML استفاده شود.
Wildcard | توصیفات |
* | این ویلدکارت هر عنصر گره ای را انطباق می دهد. |
*@ | این ویلدکارت هر گره attribute را انطباق می دهد. |
()node | این ویلدکارت هر گره با هر نوعی را مطابقت می دهد. |
در جدول زیر بعضی عبارات مسیر و نتیجه عبارات ذکر شده است:
عبارت مسیر Path Expression | نتیجه |
*/bookstore/ | تمام گره های عنصر child را از عنصر bookstore انتخاب می نماید. |
*// | تمام عناصر موجود در سند را انتخاب می کند. |
[*@]title// | تمام عناصر tittle را که دارای حداقل یک ویژگی attribute هستند را انتخاب می کند |
در پایان آموزش کار با سینتکس XPath شما را با انتخاب مسیرهای مختلف در XPath آشنا می نماییم.
با استفاده از اپراتور | در یک عبارت XPath شما می توانید چندین مسیر را انتخاب کنید.
در جدول زیر بعضی عبارات مسیر و نتیجه عبارات ذکر شده است:
عبارت مسیر Path Expression | نتیجه |
book/title | //book/price// | تمام عناصر عنوان title و قیمت price را از عناصر book را انتخاب می کند. |
title | //price// | تمام عناصر عنوان title و قیمت price را در سند انتخاب می کند. |
bookstore/book/title | //price/ | تمام عناصر title را از عنصر book که خود جزئی از عنصر bookstore است انتخاب می نماید و و همه عناصر قیمت price را نیز از سند انتخاب می نماید. |
در این جلسه آموزش کار با سینتکس XPath به علاقمندان این دوره ارائه شد.
در جلسه بعدی آموزش کار با محور XPath همراه شما خواهیم بود.
با پی وی لرن همراه باشید.