XPath সাংকেতিক
XPath XML ডকুমেন্টের নোড বা নোড সেটকে নির্বাচন করতে পাথ এক্সপ্রেসনকে ব্যবহার করে। নোডগুলি পাথ (path) বা পদক্ষেপ (steps) দ্বারা নির্বাচন করা হয়。
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 XML ডকুমেন্টের মধ্যে নোডগুলিকে নির্বাচন করতে পাথ এক্সপ্রেসনকে ব্যবহার করে। নোডগুলি পাথ বা পদক্ষেপের মাধ্যমে নির্বাচন করা হয়。
নিচে সবচেয়ে ব্যবহৃত পাথ এক্সপ্রেসনগুলিকে তালিকাভুক্ত করা হয়েছে:
এক্সপ্রেসন | বর্ণনা |
---|---|
nodename | এই নোডের সব সাব-নোড নির্বাচন করুন。 |
/ | রুপান্তরকৃত নোড থেকে নির্বাচন করুন。 |
// | বর্তমান নির্বাচনকৃত নোড থেকে, কাগজপত্রের নোডগুলিকে নির্বাচন করুন, যাতেও তারা অবস্থানের ব্যাপারে নির্বাচন করা হয়ন। |
. | বর্তমান নোড নির্বাচন করুন。 |
.. | বর্তমান নোডের মাতা নোড নির্বাচন করুন。 |
@ | অ্যাট্রিবিউট নির্বাচন করুন。 |
উদাহরণ
নিচের ট্যাবলে, আমরা কিছু পাথ এক্সপ্রেসন এবং তার ফলাফলকে তালিকাভুক্ত করেছি:
পাথ এক্সপ্রেশন | ফলাফল |
---|---|
bookstore | বুকস্টোর এলিমেন্টের সব সাব-নোড নির্বাচন করুন。 |
/bookstore |
মূল এলিমেন্ট বুকস্টোর নির্বাচন করুন。 মন্তব্য: যদি পাথ সুন্দরীকের সাথে শুরু হয়, তবে এই পাথটি সর্বদা কোনো এলিমেন্টের অবস্থার সম্পূর্ণ পাথ হিসাবে ব্যবহৃত হয়! |
bookstore/book | বুকস্টোর সাব-এলিমেন্টের সব বুক মেম্বারকে নির্বাচন করুন。 |
//book | কাগজপত্রের কোনো অবস্থানে থাকা সব বুক সাব-এলিমেন্টকে নির্বাচন করুন。 |
bookstore//book | বুকস্টোর মেম্বারের সব সাব-এলিমেন্ট বুক মেম্বারকে নির্বাচন করুন, কিন্তু তারা বুকস্টোরের কোনো অবস্থানে থাকতেও পারে। |
//@lang | নাম 'lang' সমস্ত অ্যাট্রিবিউটসমূহকে চিহ্নিত করুন。 |
প্রতীক্ষক (Predicates)
প্রতীক্ষকটি একটি নির্দিষ্ট নোডকে বা কোনও নির্দিষ্ট মানসমূহকে ম্যাচ করতে ব্যবহৃত হয়。
প্রতীক্ষকটি বর্গছাড়ে বন্ধ হয়。
উদাহরণ
নিচের টেবিলে, আমরা কিছু পাথ এক্সপ্রেশনসমূহকে যারা প্রতিটিরই একটি প্রতীক্ষক নিয়েছে, এবং এই এক্সপ্রেশনগুলির ফলাফলকে তালিকাভুক্ত করেছি:
পাথ এক্সপ্রেশন | ফলাফল |
---|---|
/bookstore/book[1] | bookstore এলিমেন্টসমূহকে সবচেয়ে প্রথম এলিমেন্টসমূহকে চিহ্নিত করুন。 |
/bookstore/book[last()] | bookstore এলিমেন্টসমূহকে সবচেয়ে শেষ এলিমেন্টসমূহকে চিহ্নিত করুন。 |
/bookstore/book[last()-1] | bookstore এলিমেন্টসমূহকে সবচেয়ে শেষ দুইটি সাব-এলিমেন্টসমূহকে চিহ্নিত করুন。 |
/bookstore/book[position()<3] | bookstore এলিমেন্টসমূহকে সবচেয়ে প্রথম দুইটি সাব-এলিমেন্ট হওয়া এলিমেন্টসমূহকে চিহ্নিত করুন。 |
//title[@lang] | সমস্ত lang নামের অ্যাট্রিবিউটসমূহ সহ title এলিমেন্টসমূহকে চিহ্নিত করুন。 |
//title[@lang='eng'] | সমস্ত title এলিমেন্টসমূহকে চিহ্নিত করুন যারা lang এবং এই এলিমেন্টসমূহকে মান 'eng' এর সঙ্গে সংযুক্ত করা হয়েছে。 |
/bookstore/book[price>35.00] | bookstore এলিমেন্টসমূহকে চিহ্নিত করুন যারা book এলিমেন্টসমূহকে সহ প্রত্যেকটির price এলিমেন্টের মান 35.00 থেকে বেশি। |
/bookstore/book[price>35.00]/title | bookstore এলিমেন্টের ভিতরের book এলিমেন্টসমূহকে চিহ্নিত করুন যারা price এলিমেন্টের মান 35.00 থেকে বেশি। |
অজ্ঞাত নোডসমূহকে চিহ্নিত করা
XPath সামগ্রীটি অজ্ঞাত XML এলিমেন্টসমূহকে চিহ্নিত করতে ব্যবহৃত হয়。
সামগ্রী | বর্ণনা |
---|---|
* | কোনও এলিমেন্ট নোডসমূহকে ম্যাচ করুন。 |
@* | কোনও অ্যাট্রিবিউট নোডসমূহকে ম্যাচ করুন。 |
node() | কোনও ধরনের নোডসমূহকে ম্যাচ করুন。 |
উদাহরণ
নিচের টেবিলে, আমরা কিছু পাথ এক্সপ্রেশন এবং এই এক্সপ্রেশনগুলির ফলাফলকে তালিকাভুক্ত করেছি:
পাথ এক্সপ্রেশন | ফলাফল |
---|---|
/bookstore/* | bookstore এলিমেন্টসমূহকে সমস্ত সাব-এলিমেন্টসমূহকে চিহ্নিত করুন。 |
//* | ডকুমেন্টতে সমস্ত এলিমেন্টসমূহকে চিহ্নিত করুন。 |
//title[@*] | সমস্ত অ্যাট্রিবিউটসমূহ সহ টাইটল এলিমেন্টসমূহকে চিহ্নিত করুন。 |
কিছু পাথ চিহ্নিত করা
পাথ এক্সপ্রেশনে "|" অপারেটর ব্যবহার করে, আপনি কিছু পাথকে চিহ্নিত করতে পারেন。
উদাহরণ
নিচের টেবিলে, আমরা কিছু পাথ এক্সপ্রেশন এবং এই এক্সপ্রেশনগুলির ফলাফলকে তালিকাভুক্ত করেছি:
পাথ এক্সপ্রেশন | ফলাফল |
---|---|
//book/title | //book/price | book এলিমেন্টসমূহকে সব টাইটল এবং price এলিমেন্টসমূহকে চিহ্নিত করুন。 |
//title | //price | 选取文档中的所有 title 和 price 元素。 |
/bookstore/book/title | //price | 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。 |