XPath টেস্টার
XML / HTML ইনপুট
ফলাফলসমূহ
প্রযুক্তিগত বিবরণ
XPath Tester কীভাবে কাজ করে
টুলটি কী করে
XPath Tester XML বা HTML ডকুমেন্টের ওপর XPath এক্সপ্রেশন ইভ্যালুয়েট করে এবং সোর্সে ম্যাচ হওয়া নোডগুলো হাইলাইট করে। আপনি আপনার XML/HTML ডকুমেন্ট পেস্ট করেন, একটি XPath এক্সপ্রেশন দেন, এবং সঙ্গে সঙ্গে সব ম্যাচিং নোড ও তাদের এক্সট্র্যাক্ট করা কনটেন্ট দেখতে পান। এটি ওয়েব স্ক্র্যাপিং, XSLT ট্রান্সফরমেশন, এবং XML ডেটা এক্সট্র্যাকশনে ব্যবহৃত কুয়েরি ডেভেলপ করার জন্য তাৎক্ষণিক ভিজ্যুয়াল ফিডব্যাক দেয়।
ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র
ডেভেলপাররা XPath টেস্টার ব্যবহার করেন ওয়েব স্ক্র্যাপিং সিলেক্টর (Scrapy, lxml) তৈরি করতে, XSLT ট্রান্সফরমেশন লিখতে, SOAP/XML API রেসপন্স কুয়েরি করতে, বা Maven POM এবং Android manifest-এর মতো কনফিগারেশন ফাইল থেকে ডেটা এক্সট্র্যাক্ট করতে। QA ইঞ্জিনিয়াররা CSS সিলেক্টর যথেষ্ট না হলে (যেমন টেক্সট কনটেন্ট দিয়ে সিলেক্ট করা বা ওপরের দিকে ট্রাভার্স করা) XPath ব্যবহার করে Selenium লোকেটর ডেভেলপ করেন। DevOps ইঞ্জিনিয়াররা XML-ভিত্তিক বিল্ড ও ডিপ্লয়মেন্ট কনফিগ কুয়েরি করেন।
ডেটা ফরম্যাট, টাইপ বা ভ্যারিয়েন্ট
XPath লোকেশন পাথ (//book/title), প্রেডিকেট (//item[@price > 10]), অ্যাক্সিস (ancestor::, following-sibling::), ফাংশন (contains(), starts-with(), normalize-space(), count()), এবং ইউনিয়ন এক্সপ্রেশন (|) সমর্থন করে। XPath 1.0 নোড-সেট, স্ট্রিং, নাম্বার, এবং বুলিয়ান রিটার্ন করে। XPath 2.0+ সিকোয়েন্স, রেগুলার এক্সপ্রেশন, এবং ডেট/টাইম ফাংশন যোগ করে, যদিও ব্রাউজার ইমপ্লিমেন্টেশন সাধারণত 1.0 সমর্থন করে। নেমস্পেস-প্রিফিক্সড এলিমেন্ট সঠিকভাবে ম্যাচ করতে নেমস্পেস রেজিস্ট্রেশন প্রয়োজন।
সাধারণ ভুল ও এজ কেস
সবচেয়ে সাধারণ XPath ভুল হলো ডিফল্ট নেমস্পেসের কথা ভুলে যাওয়া — কোনো নেমস্পেসের ভেতরের এলিমেন্টগুলো সোর্স ডকুমেন্টে কোনো প্রিফিক্স না থাকলেও আনপ্রিফিক্সড পাথের সাথে মিলবে না। XML হিসেবে পার্স করা HTML কেস-সেনসিটিভ (DIV ≠ div), আর HTML5 পার্সারগুলো লোয়ারকেসে নর্মালাইজ করে। '//' সংক্ষিপ্ত রূপটি সব ডেসেন্ড্যান্ট খোঁজে এবং বড় ডকুমেন্টে অত্যন্ত ধীর হতে পারে; স্ট্রাকচার জানা থাকলে অ্যাবসোলিউট পাথকে অগ্রাধিকার দিন। ব্রাউজারের XPath ইঞ্জিনগুলো regex-এর জন্য matches() এর মতো XPath 2.0 ফাংশন সমর্থন করে না।
কোডের বদলে কখন এই টুল ব্যবহার করবেন
স্ক্র্যাপিং বা ট্রান্সফরমেশন কোডে এমবেড করার আগে স্যাম্পল ডকুমেন্টের বিরুদ্ধে XPath এক্সপ্রেশন দ্রুত প্রোটোটাইপ করতে এই ব্রাউজার টুলটি ব্যবহার করুন। প্রোডাকশন XML প্রসেসিংয়ের জন্য ডেডিকেটেড লাইব্রেরি (Python-এর জন্য lxml, Java-এর জন্য Saxon) ব্যবহার করুন, যেগুলো XPath 2.0/3.0 সমর্থন করে, নেমস্পেস সঠিকভাবে হ্যান্ডেল করে, এবং জটিল ডকুমেন্ট ট্রান্সফরমেশনের জন্য XSLT ও XQuery পাইপলাইনের সাথে ইন্টিগ্রেট হয়।