سینتکس (XPath Syntax)
در XPath، «مسیرها» گره ها را انتخاب می کنند. «مسیر (Path)» مثل آدرس پوشه است. با چند گام، به گره هدف می رسیم. این کار انتخاب را دقیق و سریع می کند.
سند نمونه XML
نمونه زیر در همه مثال ها استفاده می شود. با آن راحت تمرین کن.
<?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>
انتخاب گره ها با مسیر
با نام گره، اسلش ها، و نمادها، مسیر ساخته می شود. چند نمونه پرکاربرد:
nodename: همه گره های هم نام را برمی گرداند./: از ریشه انتخاب می کند.//: در هر عمقی جستجو می کند..: گره جاری را برمی گرداند...: والد گره جاری را برمی گرداند.@: ویژگی ها را انتخاب می کند.
نکته: مسیر با / مطلق است. بنابراین همیشه از ریشه شروع می شود.
چند مثال از مسیرها
bookstore: همه گره های bookstore./bookstore: عنصر ریشه bookstore.bookstore/book: همه book های زیر bookstore.//book: همه book ها در هر جایی.bookstore//book: همه book های نوادگان bookstore.//@lang: همه ویژگی های lang.
پرِدیکیت ها (Predicates)
پرِدیکیت فیلتر است. داخل براکت [] می آید و نتیجه را محدود می کند.
/bookstore/book[1]: اولین book./bookstore/book[last()]: آخرین book./bookstore/book[last()-1]: یکی مانده به آخر./bookstore/book[position()<3]: دو book اول.//title[@lang]: همه title با ویژگی lang.//title[@lang='en']: همه title با lang برابر en./bookstore/book[price>35.00]: book هایی با price بالای 35./bookstore/book[price>35.00]/title: title همان book های گران.
نکته: در IE قدیمی، اندیس از صفر بود. استاندارد W3C از یک شروع می کند.
انتخاب گره های ناشناخته با وایلدکارد
وقتی نام دقیق را نمی دانی، از وایلدکاردها استفاده کن:
*: هر عنصر.@*: هر ویژگی.node(): هر نوع گره.
/bookstore/*: همه فرزندان bookstore.//*: همه عناصر سند.//title[@*]: همه title که حداقل یک ویژگی دارند.
چند مسیر همزمان
با عملگر | می توان چند مسیر را یک جا انتخاب کرد.
//book/title | //book/price: همه title و price کتاب ها.//title | //price: همه title ها و همه price ها./bookstore/book/title | //price: title های زیر bookstore و همه price ها.
ادامه مسیر
برای مرور دوباره سینتکس XPath این صفحه را ذخیره کن. سپس برای آشنایی با محور ها به محورهای XPath برو. اگر تازه کاری، اول مقدمه XPath را بخوان.
جمع بندی سریع
- مسیرها مثل آدرس پوشه هستند.
/مطلق است؛//همه جا می گردد.- پرِدیکیت ها نتیجه را فیلتر می کنند.
- وایلدکاردها برای نام های ناشناخته اند.
|چند مسیر را ترکیب می کند.