Axes (آxe) XPath

مستند نمونه XML

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

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
<title lang="eng">Learning XML</title>

  Learning XML
  <book>
<title lang="eng">Learning XML</title>
<price>39.95</price>

</book>

</bookstore>

محور XPath نتیجه
محور می‌تواند مجموعه گره‌هایی را تعریف کند که در مقایسه با گره فعلی قرار دارند. نام محور
ancestor انتخاب همه نسل‌های گره فعلی، والدین، پدربزرگ‌ها و غیره.
ancestor-or-self انتخاب همه ویژگی‌های یک گره فعلی.
انتخاب همه نسل‌های گره فعلی، والدین، پدربزرگ‌ها و غیره به همراه گره خود. انتخاب همه فرزندان یک گره فعلی.
attribute child
descendant انتخاب همه فرزندان، نوه‌ها و غیره گره فعلی.
descendant-or-self انتخاب همه فرزندان، نوه‌ها و غیره گره فعلی به همراه گره خود.
following انتخاب همه گره‌هایی که بعد از تگ پایان گره فعلی قرار دارند.
namespace انتخاب همه گره‌های فضای نام گره فعلی.
parent انتخاب گره پدر گره فعلی.
preceding انتخاب همه گره‌هایی که قبل از تگ شروع گره فعلی قرار دارند.
preceding-sibling انتخاب همه گره‌های هم سطح با گره فعلی.

self

انتخاب گره فعلی.

عبارت مسیر موقعیتیتار

مسیر موقعیتیتار می‌تواند مطلق یا نسبی باشد.

/step/step/...

مسیر موقعیتیتار (relative position path):

step/step/...

هر گام بر اساس گره‌های موجود در مجموعه فعلی گره‌ها محاسبه می‌شود.

گام (step) شامل:

محور (axis)
تعریف رابطه درخت برای گره‌های انتخاب شده با گره فعلی
تست گره (node-test)
تشخیص گره‌هایی که در یک محور خاص قرار دارند
یک یا چند جمله (predicate)
تکمیلی‌تر کردن مجموعه گره‌های انتخاب شده

نحوه استفاده از جمله:

نام محور::گره تست[جمله]

مثال

مثال نتیجه
child::book انتخاب همه گره‌های book که به عنوان فرزند یک گره فعلی هستند.
attribute::lang انتخاب ویژگی lang یک گره فعلی.
child::* انتخاب همه فرزندان یک گره فعلی.
attribute::* انتخاب همه ویژگی‌های یک گره فعلی.
child::text() انتخاب همه فرزندان متنی یک گره فعلی.
child::node() انتخاب همه فرزندان یک گره فعلی.
descendant::book انتخاب تمام فرزندان book برای گره فعلی.
ancestor::book انتخاب تمام اجداد book برای گره فعلی.
ancestor-or-self::book انتخاب تمام اجداد book و گره فعلی (اگر گره فعلی گره book باشد)
child::*/child::price تمام فرزندان price انتخاب شده برای گره فعلی.