نوع‌های XPath

XPath از طریق عبارات مسیر برای انتخاب گره‌ها یا مجموعه گره‌های مستند XML استفاده می‌کند. گره‌ها از طریق مسیر (path) یا مرحله (steps) انتخاب می‌شوند.

مستند نمونه XML

ما در مثال‌های زیر از این مستند XML استفاده خواهیم کرد.

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="fa">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="fa">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

انتخاب گره‌ها

XPath از طریق عبارات مسیر در مستند XML انتخاب می‌کند. گره‌ها از طریق مسیر یا مرحله انتخاب می‌شوند.

در اینجا مسیرهای مندکاتور بیشترین استفاده را دارند لیست شده‌اند:

عبارت توضیح
nodename همه فرزندان این گره را انتخاب کنید.
/ از ریشه گره‌ها انتخاب کنید.
// از گره فعلی، گره‌های مستند را انتخاب کنید، بدون توجه به موقعیت آن‌ها.
. انتخاب گره فعلی.
.. انتخاب پدر گره فعلی.
@ انتخاب attribute.

مثال

در جدول زیر، ما برخی از مسیرهای مندکاتور و نتایج آن‌ها را لیست کرده‌ایم:

عبارت مسیر نتیجه
bookstore انتخاب همه فرزندان bookstore.
/bookstore

انتخاب عنصر ریشه bookstore.

توضیح: اگر مسیر با خط تیره افقی ( / ) شروع شود، این مسیر همیشه به مسیر مطلق یک عنصر اشاره دارد!

bookstore/book انتخاب همه عناصر book فرزند bookstore.
//book انتخاب همه عناصر book فرزند، بدون توجه به موقعیت آن‌ها در مستند.
bookstore//book انتخاب همه عناصر book فرزند bookstore بدون توجه به موقعیت آن‌ها در bookstore.
//@lang انتخاب همه attribute‌های نام‌گذاری شده lang.

مندکاتور (Predicates)

مندکاتور برای پیدا کردن یک گره خاص یا گره‌هایی که دارای مقدار مشخصی هستند استفاده می‌شود.

مندکاتور در میان کروشه‌ها قرار دارد.

مثال

در جدول زیر، ما برخی از مسیرهای مندکاتور و نتایج آن‌ها را لیست کرده‌ایم:

عبارت مسیر نتیجه
/bookstore/book[1] انتخاب عناصر book اولیه در bookstore.
/bookstore/book[last()] انتخاب عناصر book در انتهای bookstore.
/bookstore/book[last()-1] انتخاب عناصر book دومین در bookstore.
/bookstore/book[position()<3] انتخاب دو عناصر book اولیه که در bookstore قرار دارند.
//title[@lang] انتخاب همه عناصر title که دارند attribute lang.
//title[@lang='eng'] انتخاب همه عناصر title که دارند attribute lang با value eng.
/bookstore/book[price>35.00] انتخاب همه عناصر book در bookstore و همچنین مقدار element price باید بزرگتر از 35.00 باشد.
/bookstore/book[price>35.00]/title انتخاب همه عناصر title در عنصر book bookstore که ارزش ویژگی price بیشتر از 35.00 باشد.

انتخاب نودهای ناشناخته

مثال‌گذار XPath می‌تواند برای انتخاب عناصر XML ناشناخته استفاده شود.

مثال‌گذار توضیح
* همه نود عنصر را تطبیق دهید.
@* همه نود ویژگی را تطبیق دهید.
node() همه نوع نود را تطبیق دهید.

مثال

در جدول زیر، برخی از عبارت‌های مسیر و نتایج این عبارت‌ها را لیست کرده‌ایم:

عبارت مسیر نتیجه
/bookstore/* انتخاب همه فرزندان عنصر bookstore.
//* انتخاب همه عناصر در مستند.
//title[@*] انتخاب همه عناصر title با ویژگی.

انتخاب چندین مسیر

با استفاده از عملگر '|' در عبارت مسیر، می‌توانید چندین مسیر را انتخاب کنید.

مثال

در جدول زیر، برخی از عبارت‌های مسیر و نتایج این عبارت‌ها را لیست کرده‌ایم:

عبارت مسیر نتیجه
//book/title | //book/price انتخاب همه عناصر title و price در عنصر book.
//title | //price انتخاب همه عناصر title و price در مستند.
/bookstore/book/title | //price انتخاب همه عناصر title که به عنصر bookstore متعلق هستند و همه عناصر price در مستند.