ایکس پی تی آئی گرامر

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

مستند نمونه XML

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

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

گره‌ها انتخاب می‌کنند

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

در اینجا، مسیرهای منظم مفیدتر لیست شده‌اند:}

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

مثال

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

پتھ ایکسپریشن نتائج
bookstore اخترتم تمامی نودهای فرزند bookstore.
/bookstore

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

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

bookstore/book اخترتم تمامی عناصر book که از عناصر bookstore مستند هستند.
//book اخترتم تمامی عناصر book، بدون توجه به موقعیت آن‌ها در مستند.
bookstore//book اخترتم تمامی عناصر book که از عناصر bookstore مستند هستند، بدون توجه به موقعیت آن‌ها زیر bookstore.
//@lang اخترتم تمامی ویژگی‌هایی که نام آن‌ها 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 که ویژگی lang دارند.
//title[@lang='eng'] اخترتم تمام عناصر title، که این عناصر دارای ویژگی lang با مقدار eng هستند.
/bookstore/book[price>35.00] اخترتم عنصر bookstore کی تمام عناصر book، جس می‌خواهید که مقدار عناصر price بیشتر از 35.00 باشد.
/بکستورکام/بک[پرائس>35.00]/تائیٹ بکستورکام عنصر میں بک عنصر کی سبھی تائیٹ عنصر کو انتخاب کریں، جس میں پرائس عنصر کا مالکیت 35.00 سے زیادہ ہونا چاہئے۔

غیر معلوم نود کا انتخاب

ایکس پی تی آئی مکمل نما کو غیر معلوم ایکس ایم ایل عنصر کو انتخاب کیلئے استعمال کیا جاسکتا ہے۔

مکمل نما توضیح
* کسی بھی نوعیت کا عنصر میں ماتختیار
@* کسی بھی نوعیت کا پرپرتی نود میں ماتختیار
نود() کسی بھی نوعیت کا نود میں ماتختیار

مثال

درج ذیل ٹیبل میں، ہم نے کچھ پتھ ایکسپریشن اور ان ایکسپریشن کا نتائج درج کیا ہے:

پتھ ایکسپریشن نتائج
/بکستورکام/* بکستورکام عنصر کی سبھی ذیلی عنصر کو انتخاب کریں۔
/* دستاویز میں سبھی عنصر کو انتخاب کریں۔
//تائیٹ[@*] سبھی اپنے پر کسی ویژن کا رکھنے والی تائیٹ عنصر کو انتخاب کریں۔

کچھ پتھ کا انتخاب

پتھ ایکسپریشن میں 'ی' آپریٹر استعمال کرکے کچھ پتھ کو انتخاب کرسکتے ہیں۔

مثال

درج ذیل ٹیبل میں، ہم نے کچھ پتھ ایکسپریشن اور ان ایکسپریشن کا نتائج درج کیا ہے:

پتھ ایکسپریشن نتائج
//بک/تائیٹ | //بک/پرائس بک عنصر کی سبھی تائیٹ اور پرائس عنصر کو انتخاب کریں۔
//تائیٹ | //پرائس دستاویز میں سبھی تائیٹ اور پرائس عنصر کو انتخاب کریں۔
/بکستورکام/بک/تائیٹ | //پرائس بکستورکام عنصر کی سبھی بک عنصر کی سبھی تائیٹ عنصر اور سارے پرائس عنصر کو انتخاب کریں، اور سارے پرائس عنصر کا مالکیت 35.00 سے زیادہ ہونا چاہئے۔