فهرست سرفصل‌های XML
خانه (XML HOME) مقدمه (XML Introduction) نحوه استفاده (XML How to use) درخت (XML Tree) سینتکس (XML Syntax) عناصر (XML Elements) ویژگی ها (XML Attributes) فضاهای نام (XML Namespaces) نمایش (XML Display) XMLHttpRequest (XML HttpRequest) پارسر (XML Parser) DOM (XML DOM) XPath (XML XPath) XSLT (XML XSLT) XQuery (XML XQuery) XLink (XML XLink) اعتبارسنج (XML Validator) DTD (XML DTD) اسکیما (XML Schema) سرور (XML Server) مقدمه (AJAX Introduction) ساخت XMLHttpRequest (AJAX XMLHttp) ارسال درخواست (AJAX Request) پاسخ (AJAX Response) فایل XML (AJAX XML File) AJAX با PHP (AJAX PHP) AJAX با ASP (AJAX ASP) پایگاه داده (AJAX Database) اپلیکیشن ها (AJAX Applications) مثال ها (AJAX Examples) مقدمه (DOM Introduction) گره ها (DOM Nodes) دسترسی (DOM Accessing) اطلاعات گره (DOM Node Info) فهرست گره ها (DOM Node List) پیمایش (DOM Traversing) ناوبری (DOM Navigating) گرفتن مقادیر (DOM Get Values) تغییر گره ها (DOM Change Nodes) حذف گره ها (DOM Remove Nodes) جایگزینی گره ها (DOM Replace Nodes) ساخت گره ها (DOM Create Nodes) افزودن گره ها (DOM Add Nodes) کلون کردن گره ها (DOM Clone Nodes) مثال ها (DOM Examples) مقدمه (XPath Introduction) گره ها (XPath Nodes) سینتکس (XPath Syntax) محورها (XPath Axes) عملگرها (XPath Operators) مثال ها (XPath Examples) مقدمه (XSLT Introduction) زبان ها (XSL Languages) تبدیل (XSLT Transform) الگو (<template>) (XSLT <template>) value-of (<value-of>) (XSLT <value-of>) for-each (<for-each>) (XSLT <for-each>) مرتب سازی (XSLT <sort>) اگر (<if>) (XSLT <if>) انتخاب (XSLT <choose>) اعمال قالب ها (XSLT Apply) در سمت کلاینت (XSLT on the Client) در سمت سرور (XSLT on the Server) ویرایش XML (XSLT Edit XML) مثال ها (XSLT Examples) مقدمه (XQuery Introduction) مثال (XQuery Example) FLWOR (XQuery FLWOR) HTML (XQuery HTML) اصطلاحات (XQuery Terms) سینتکس (XQuery Syntax) افزودن (XQuery Add) انتخاب (XQuery Select) توابع (XQuery Functions) مقدمه (DTD Introduction) بلوک های سازنده (DTD Building Blocks) عناصر (DTD Elements) ویژگی ها (DTD Attributes) عناصر در برابر ویژگی ها (DTD Elements vs Attr) موجودیت ها (DTD Entities) مثال ها (DTD Examples) مقدمه (XSD Introduction) چگونه (XSD How To) برچسب <schema> (XSD <schema>) عناصر (XSD Elements) ویژگی ها (XSD Attributes) محدودیت ها (XSD Restrictions) عناصر پیچیده (XSD Complex Elements) خالی (XSD Empty) فقط عناصر (XSD Elements-only) فقط متن (XSD Text-only) ترکیبی (XSD Mixed) نشانگرها (XSD Indicators) <any> (XSD <any>) <anyAttribute> (XSD <anyAttribute>) جایگزینی (XSD Substitution) مثال (XSD Example) رشته (XSD String) تاریخ/زمان (XSD Date/Time) عددی (XSD Numeric) متفرقه (XSD Misc) مرجع (XSD Reference) سرویس ها (XML Services) WSDL (XML WSDL) SOAP (XML SOAP) RDF (XML RDF) RSS (XML RSS) مثال ها (XML Examples) آزمون (XML Quiz) سیلابس (XML Syllabus) برنامه مطالعه (XML Study Plan) گواهینامه (XML Certificate) انواع گره (DOM Node Types) گره (DOM Node) NodeList (DOM NodeList) NamedNodeMap (DOM NamedNodeMap) سند (DOM Document) عنصر (DOM Element) ویژگی (DOM Attribute) متن (DOM Text) CDATA (DOM CDATA) کامنت (DOM Comment) XMLHttpRequest (DOM XMLHttpRequest) پارسر (DOM Parser) المان ها (XSLT Elements) توابع (XSLT/XPath Functions)
نتیجه‌ای برای جستجو یافت نشد.
XML

XML — سینتکس (XPath Syntax)

آخرین بروزرسانی: 1404/08/17

سینتکس (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 را بخوان.

جمع بندی سریع

  • مسیرها مثل آدرس پوشه هستند.
  • / مطلق است؛ // همه جا می گردد.
  • پرِدیکیت ها نتیجه را فیلتر می کنند.
  • وایلدکاردها برای نام های ناشناخته اند.
  • | چند مسیر را ترکیب می کند.