XPath Axes (অক্ষ)

XML উদাহরণ ডকুমেন্ট:

আমরা নিচের উদাহরণে এই XML ডকুমেন্টটি ব্যবহার করব:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<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/...

সম্পর্কিত পথ:

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 সন্তান নোডগুলো চিহ্নিত করুন。