آخرین بروزرسانی 14 روز قبل

XPath چیست؟

XPath چیست؟ راهنمای ساده برای همه

سلام دوستان! تو این مقاله می‌خوایم ببینیم XPath چیه و چطور می‌تونه بهمون کمک کنه. شاید اسمش یکم پیچیده به نظر برسه، ولی خیالتون راحت، خیلی ساده‌تر از اونیه که فکر می‌کنید. فرض کنید یه کتاب خیلی بزرگ دارید و می‌خواید یه قسمت خاص ازش رو پیدا کنید. XPath مثل یه آدرس دقیق عمل می‌کنه که بهتون می‌گه دقیقا کجا رو باید نگاه کنید.

XPath در واقع یه زبون پرس و جو (query language) برای انتخاب گره‌ها (nodes) از یه سند XML یا HTML هست. این یعنی چی؟ یعنی اگه یه فایل XML یا HTML دارید (که خیلی از اطلاعات توی وب به این شکل ذخیره می‌شن)، می‌تونید از XPath استفاده کنید تا اطلاعات خاصی رو از داخلش بیرون بکشید. مثلا می‌تونید همه‌ی تگ‌های <p> رو پیدا کنید، یا مقدار یه خصوصیت خاص رو بخونید.

چرا XPath مهمه؟

XPath خیلی جاها کاربرد داره، ولی بیشتر از همه توی اتوماسیون تست وب (web automation testing) و استخراج اطلاعات از وب‌سایت‌ها (web scraping) استفاده می‌شه. فرض کنید می‌خواید مطمئن شید که یه دکمه توی وب‌سایت‌تون درست کار می‌کنه. می‌تونید از XPath استفاده کنید تا اون دکمه رو پیدا کنید و بعد روش کلیک کنید. یا فرض کنید می‌خواید قیمت همه‌ی لپ‌تاپ‌ها رو از یه فروشگاه آنلاین جمع‌آوری کنید. بازم XPath به کمکتون میاد.

اصطلاحات مهم XPath

قبل از اینکه بریم سراغ مثال‌ها، بهتره با یه سری اصطلاح مهم آشنا بشیم:

  • گره (Node): هر چیزی توی یه سند XML یا HTML یه گره حساب می‌شه. مثلا یه تگ، یه خصوصیت، یا یه متن.
  • عنصر (Element): یه نوع خاص از گره که یه تگ HTML یا XML هست. مثلا <p>, <div>, <h1>.
  • خصوصیت (Attribute): اطلاعات اضافه‌ای که به یه عنصر اضافه می‌شه. مثلا توی <a href="https://example.com">، `href` یه خصوصیت هست.
  • مسیر (Path): دنباله‌ای از گره‌ها که بهمون می‌گه چطور به یه گره‌ی خاص برسیم.

نمونه‌های ساده XPath

حالا بیاید یه چندتا مثال ساده ببینیم تا بهتر متوجه بشید:

فرض کنید یه سند HTML ساده داریم به این شکل:

        <html>
          <body>
            <h1>سلام دنیا!</h1>
            <p>این یه پاراگرافه.</p>
            <a href="https://example.com">یه لینک</a>
          </body>
        </html>
    

حالا با استفاده از XPath می‌تونیم این اطلاعات رو استخراج کنیم:

XPath توضیح نتیجه
/html/body/h1 انتخاب تگ <h1> داخل <body> و <html> <h1>سلام دنیا!</h1>
//p انتخاب همه‌ی تگ‌های <p> <p>این یه پاراگرافه.</p>
//a/@href انتخاب مقدار خصوصیت `href` از همه‌ی تگ‌های <a> https://example.com
//a[text()='یه لینک'] انتخاب تگ <a> که متن داخلش 'یه لینک' باشه. <a href="https://example.com">یه لینک</a>
//h1/text() انتخاب متن داخل تگ <h1> سلام دنیا!

توابع کاربردی XPath

XPath یه سری توابع هم داره که کارمون رو راحت‌تر می‌کنن. چندتا از مهم‌ترین‌هاش اینا هستن:

  • text(): برای گرفتن متن داخل یه گره.
  • contains(string1, string2): برای اینکه ببینیم یه رشته شامل یه رشته‌ی دیگه هست یا نه.
  • starts-with(string1, string2): برای اینکه ببینیم یه رشته با یه رشته‌ی دیگه شروع می‌شه یا نه.
  • ends-with(string1, string2): برای اینکه ببینیم یه رشته با یه رشته‌ی دیگه تموم می‌شه یا نه.
  • count(): برای شمردن تعداد گره‌ها.

مثلا، می‌تونیم از contains() استفاده کنیم تا تگ <a> که `href` اون شامل "example" هست رو پیدا کنیم: //a[contains(@href, 'example')]

نکات مهم و کلیدی

* // در مقابل /: فرقشون اینه که // کل سند رو جستجو می‌کنه، ولی / فقط فرزند مستقیم گره‌ی فعلی رو نگاه می‌کنه.

* موقعیت‌های ایندکس: شما به کمک پرانتز [ ] میتونید ایندکس یک عنصر رو مشخص کنید. به طور مثال //p[1] اولین تگ <p> رو انتخاب میکنه و //p[last()] اخرین تگ <p> رو انتخاب میکنه.

* استفاده از * : علامت * به معنی "هر عنصر" هست. مثلا /html/body/* یعنی "همه‌ی فرزندان تگ body ".

جمع بندی

XPath یه ابزار قدرتمند برای کار کردن با داده‌های XML و HTML هست. با یادگیری مفاهیم پایه و چندتا مثال ساده، می‌تونید ازش برای استخراج اطلاعات، اتوماسیون تست، و خیلی کارهای دیگه استفاده کنید. امیدوارم این مقاله براتون مفید بوده باشه و بتونید از XPath توی پروژه‌های خودتون استفاده کنید. یادگیری این تکنیک برای توسئه دهندگان وب, توسعه دهنده های نرم افزار و حتی کاربران عادی که نیاز به کار با داده دارن بسیار مهم و سودمند می باشد. سعی کنید تمرین کنی تا با این فنن به طور کامل آشنا بشی.

کلیدواژه‌ها

XPath, XML, HTML, پرس و جو, گره, عنصر, خصوصیت, مسیر, اتوماسیون تست, استخراج اطلاعات, وب‌سکرپینگ

XPath دقیقا چیست؟
XPath یک زبان پرس و جو برای انتخاب گره‌ها از یک سند XML یا HTML است.
چرا باید XPath را یاد بگیرم؟
XPath برای اتوماسیون تست وب، استخراج اطلاعات از وب‌سایت‌ها و کار با داده‌های XML/HTML بسیار مفید است.
تفاوت بین // و / در XPath چیست؟
// کل سند را جستجو می‌کند، در حالی که / فقط فرزندان مستقیم گره فعلی را بررسی می‌کند.
چگونه می‌توانم از XPath برای پیدا کردن متن داخل یک تگ استفاده کنم؟
از تابع text() استفاده کنید. مثلاً //h1/text() متن داخل تگ <h1> را برمی‌گرداند.
آیا برای استفاده از XPath به برنامه نویسی نیاز دارم؟
بله، به طور معمول شما نیاز خواهید داشت که XPath را در کنار یک زبان برنامه نویسی مانند پایتون یا جاوا استفاده کنید تا بتوانید نتیجه رو ذخیره و یا پردازش کنید.

به اشتراک گذاشتن این مطلب در شبکه های اجتماعی

امتیاز شما به این مطلب

امتیاز: 5 از 5 (مجموع 1 رای)

اولین نفری باشید که در مورد این مقاله نظر می دهید!

11195- V11
Terms & Conditions | Privacy Policy

techfeed.ir© 2024 All rights reserved