মই বছৰ বছৰ ধৰি এটা ধাৰা দেখিবলৈ যথেষ্ট দিন ফ্ৰন্ট-এণ্ড ডেভেলপমেণ্টত আছো: কম বয়সীয়া ডেভেলপাৰসকলে ইয়াৰ ঐতিহাসিক প্ৰসংগ বুজি নোপোৱাকৈয়ে প্ৰগ্ৰেমিংৰ এটা নতুন পেৰাডাইমৰ সৈতে কাম কৰি আছে৷ কিবা এটা নজনাটো অৱশ্যে একেবাৰে বুজিব পৰা কথা। ৱেবটো এটা অতি ডাঙৰ ঠাই য’ত দক্ষতা আৰু বিশেষত্বৰ বৈচিত্ৰ্যপূৰ্ণ গোট আছে, আৰু আমি সদায় নাজানো কি নাজানো। এই ক্ষেত্ৰত শিক্ষা গ্ৰহণ কৰাটো এবাৰ ঘটা আৰু শেষ হোৱা কামতকৈ চলি থকা যাত্ৰাহে। কেছ ইন পইণ্ট: মোৰ দলৰ কোনোবাই সুধিলে যে ব্যৱহাৰকাৰীসকলে UI ৰ এটা বিশেষ টেবৰ পৰা আঁতৰি যায় নেকি কোৱা সম্ভৱ নেকি? মই জাভাস্ক্রিপ্টৰ আগৰ আনলোড ইভেন্টটো আঙুলিয়াই দিলোঁ৷ কিন্তু যিসকলে আগতে এইটো মোকাবিলা কৰিছে তেওঁলোকে জানে যে এইটো সম্ভৱ কাৰণ তেওঁলোকে অন্য চাইটত সংৰক্ষিত নোহোৱা তথ্যৰ বিষয়ে সতৰ্কবাণীৰে আঘাত পাইছে, যাৰ বাবে আগতে আনলোড কৰাটো এটা সাধাৰণ ব্যৱহাৰৰ ক্ষেত্ৰ। মই মোৰ সহকৰ্মীক ভাল পৰিমাপৰ বাবে pageHide আৰু visibilityChange ইভেন্টবোৰো আঙুলিয়াই দিলোঁ। সেই বিষয়ে মই কেনেকৈ গম পালোঁ? কাৰণ ই আন এটা প্ৰজেক্টত আহিছিল, প্ৰথমতে জাভাস্ক্রিপ্ট শিকি থাকোঁতে ইয়াৰ ওপৰত অধ্যয়ন কৰাৰ বাবে নহয়। সত্যটো হ’ল আধুনিক ফ্ৰন্ট-এণ্ড ফ্ৰেমৱৰ্কসমূহে ইয়াৰ পূৰ্বে থকা প্ৰযুক্তিৰ দৈত্যসমূহৰ কান্ধত থিয় হৈ আছে। তেওঁলোকে বিকাশৰ পদ্ধতিসমূহ বিমূৰ্ত কৰে, প্ৰায়ে এটা উন্নত ডেভেলপাৰ অভিজ্ঞতাৰ বাবে যিয়ে পৰম্পৰাগতভাৱে সকলোৱে জানিবলগীয়া অত্যাৱশ্যকীয় ফ্ৰন্ট-এণ্ড ধাৰণাসমূহ জনা বা স্পৰ্শ কৰাৰ প্ৰয়োজনীয়তা হ্ৰাস কৰে, বা আনকি নাইকিয়া কৰে। CSS বস্তু আৰ্হি (CSSOM) বিবেচনা কৰক। আপুনি আশা কৰিব পাৰে যে CSS আৰু জাভাস্ক্রিপ্টত কাম কৰা যিকোনো ব্যক্তিৰ হাতত CSSOM অভিজ্ঞতা আছে, কিন্তু সেয়া সদায় নহ’ব৷ মই কাম কৰা এটা ই-কমাৰ্চ চাইটৰ বাবে এটা ৰিএক্ট প্ৰজেক্ট আছিল য'ত আমি বৰ্তমান নিৰ্বাচিত পেমেণ্ট প্ৰদানকাৰীৰ বাবে এটা ষ্টাইলশ্বীট লোড কৰিব লাগিছিল। সমস্যাটো আছিল যে ষ্টাইলশ্বীটটো প্ৰতিটো পৃষ্ঠাতে লোড হৈ আছিল যেতিয়া ইয়াৰ প্ৰকৃততে কেৱল এটা নিৰ্দিষ্ট পৃষ্ঠাত প্ৰয়োজন হৈছিল। এইটো সম্ভৱ কৰাৰ দায়িত্ব দিয়া ডেভেলপাৰে কেতিয়াও এটা ষ্টাইলশ্বীট গতিশীলভাৱে লোড কৰা নাছিল। আকৌ, এইটো সম্পূৰ্ণ বুজা যায় যেতিয়া React-এ আপুনি হয়তো হাত আগবঢ়োৱা পৰম্পৰাগত পদ্ধতিটোক বিমূৰ্ত কৰি পেলায়। CSSOM সম্ভৱতঃ আপোনাৰ দৈনন্দিন কামত প্ৰয়োজনীয় বস্তু নহয়। কিন্তু সম্ভৱতঃ আপুনি ইয়াৰ সৈতে কোনো এটা সময়ত যোগাযোগ কৰিব লাগিব, আনকি এবাৰৰ ক্ষেত্ৰতো। এই অভিজ্ঞতাবোৰে মোক এই লেখাটো লিখিবলৈ অনুপ্ৰাণিত কৰিলে। বন্যপ্ৰাণীত বহুতো বৰ্তমানৰ ৱেব বৈশিষ্ট্য আৰু প্ৰযুক্তি আছে যিবোৰ আপুনি হয়তো কেতিয়াও আপোনাৰ দৈনন্দিন কামত প্ৰত্যক্ষভাৱে স্পৰ্শ নকৰে। হয়তো আপুনি ৱেব ডেভেলপমেণ্টৰ ক্ষেত্ৰত মোটামুটি নতুন আৰু সেইবোৰৰ বিষয়ে অজ্ঞাত কাৰণ আপুনি এটা নিৰ্দিষ্ট কাঠামোৰ বিমূৰ্ততাত ডুব গৈছে যাৰ বাবে আপুনি ইয়াক গভীৰভাৱে জনাটো প্ৰয়োজনীয় নহয়, বা আনকি একেবাৰেই জানিব নালাগে৷ মই বিশেষভাৱে এক্সএমএলৰ কথা কৈছো, যিটো আমাৰ বহুতেই জানে যে ই এইচটিএমএলৰ পৰা সম্পূৰ্ণ পৃথক নহয় এটা প্ৰাচীন ভাষা। মই এইটো উত্থাপন কৰিছো কাৰণ শেহতীয়াকৈ WHATWG আলোচনাই পৰামৰ্শ দিছে যে XSLT প্ৰগ্ৰেমিং নামেৰে জনাজাত XML ষ্টেকৰ এটা উল্লেখযোগ্য অংশ ব্ৰাউজাৰৰ পৰা আঁতৰোৱা উচিত। এইটো হৈছে আমাৰ হাতত বছৰ বছৰ ধৰি থকা পুৰণি, বৰ্তমানৰ প্ৰযুক্তি যিটো মোৰ দলৰ চি এছ এছ অ’ এম পৰিস্থিতিৰ দৰে ব্যৱহাৰিক কিবা এটাৰ বাবে ব্যৱহাৰ কৰিব পৰা যাব৷ আপুনি আগতে XSLT ৰ সৈতে কাম কৰিছেনে? চাওঁ আহক আমি এই পুৰণি প্ৰযুক্তিৰ প্ৰতি বহু পৰিমাণে হেলান দিওঁ নেকি আৰু আজিৰ বাস্তৱ জগতৰ সমস্যাসমূহ মোকাবিলা কৰিবলৈ এক্সএমএলৰ প্ৰসংগৰ বাহিৰত ইয়াৰ বৈশিষ্ট্যসমূহৰ লাভ উঠাব পাৰোনে? XPath: কেন্দ্ৰীয় এপিআই আটাইতকৈ গুৰুত্বপূৰ্ণ XML প্ৰযুক্তি যি সম্ভৱতঃ এটা পোন XML দৃষ্টিভংগীৰ বাহিৰত আটাইতকৈ উপযোগী হৈছে XPath, এটা প্ৰশ্ন ভাষা যি আপোনাক এটা ৰূট উপাদানৰ সৈতে এটা মাৰ্কআপ বৃক্ষত যিকোনো ন'ড বা বৈশিষ্ট্য বিচাৰিবলৈ অনুমতি দিয়ে। XSLT ৰ প্ৰতি মোৰ ব্যক্তিগত মৰম আছে, কিন্তু সেয়াও XPath ৰ ওপৰত নিৰ্ভৰশীল, আৰু ৰেংকিঙৰ গুৰুত্বত ব্যক্তিগত মৰম আঁতৰাই ৰাখিব লাগিব। XSLT আঁতৰোৱাৰ যুক্তিত XPath ৰ কোনো উল্লেখ নাই, গতিকে মই ধৰি লৈছো যে ইয়াৰ অনুমতি এতিয়াও দিয়া হৈছে। সেয়া ভাল কাৰণ এই প্ৰযুক্তিৰ গোটত XPath হৈছে কেন্দ্ৰীয় আৰু আটাইতকৈ গুৰুত্বপূৰ্ণ API, বিশেষকৈ যেতিয়া সাধাৰণ XML ব্যৱহাৰৰ বাহিৰত ব্যৱহাৰ কৰিবলৈ কিবা এটা বিচাৰিবলৈ চেষ্টা কৰা হয়। ই গুৰুত্বপূৰ্ণ কাৰণ, CSS নিৰ্বাচকসমূহ আপোনাৰ পৃষ্ঠাৰ বেছিভাগ উপাদান বিচাৰিবলৈ ব্যৱহাৰ কৰিব পাৰিলেও, সিহঁতে সকলো বিচাৰি নাপায়। ইয়াৰ উপৰিও, DOM ত ইয়াৰ বৰ্তমানৰ অৱস্থানৰ ওপৰত ভিত্তি কৰি এটা উপাদান বিচাৰিবলৈ CSS নিৰ্বাচকসমূহ ব্যৱহাৰ কৰিব নোৱাৰি। XPath কৰিব পাৰে। এতিয়া, এইটো পঢ়ি থকা আপোনালোকৰ কিছুমানে হয়তো XPath জানে, আৰু কিছুমানে নাজানে। XPath প্ৰযুক্তিৰ এটা যথেষ্ট ডাঙৰ ক্ষেত্ৰ, আৰু মই সঁচাকৈয়ে সকলো মূল কথা শিকাব নোৱাৰো আৰু লগতে ইয়াৰ সৈতে কৰিবলগীয়া শীতল কামবোৰো আপোনাক এনেকুৱা এটা প্ৰবন্ধত দেখুৱাব নোৱাৰো। মই আচলতে সেই লেখাটো লিখিবলৈ চেষ্টা কৰিছিলো, কিন্তু গড় স্মেছিং মেগাজিনৰ প্ৰকাশন ৫,০০০ শব্দৰ ওপৰত নহয়। ইতিমধ্যে মই তাতকৈ বেছি আছিলোঁ২০০০ শব্দৰ বিপৰীতে মূল কথাবোৰ মাত্ৰ আধাতে। গতিকে, মই XPath ৰ সৈতে শীতল কাম কৰিবলৈ আৰম্ভ কৰিম আৰু আপোনাক কিছুমান লিংক দিম যিবোৰ আপুনি এই কামটো আকৰ্ষণীয় বুলি বিবেচনা কৰিলে মূল কথাবোৰৰ বাবে ব্যৱহাৰ কৰিব পাৰে। XPath & CSS সংযুক্ত কৰা XPath এ বহুতো কাম কৰিব পাৰে যিবোৰ CSS নিৰ্বাচকসকলে উপাদানসমূহ প্ৰশ্ন কৰাৰ সময়ত কৰিব নোৱাৰে। কিন্তু CSS নিৰ্বাচকসকলে XPath এ কৰিব নোৱাৰা কেইটামান কামো কৰিব পাৰে, যেনে, ক্লাছৰ নাম অনুসৰি উপাদানসমূহক প্ৰশ্ন কৰা।

চি এছ এছ XPath .মোৰ ক্লাছ /*[contains(@class, "মোৰ শ্ৰেণী")]

এই উদাহৰণত, CSS এ উপাদানসমূহ প্ৰশ্ন কৰে যি এটা .myClass শ্ৰেণীনাম ধাৰণ কৰে। ইফালে, XPath উদাহৰণে “myClass” ষ্ট্ৰিংৰ সৈতে এটা বৈশিষ্ট্য শ্ৰেণী ধাৰণ কৰা উপাদানসমূহক প্ৰশ্ন কৰে। অন্য কথাত, ই যিকোনো বৈশিষ্ট্যত myClass থকা উপাদানসমূহ নিৰ্ব্বাচন কৰে, .myClass classname ৰ সৈতে উপাদানসমূহ অন্তৰ্ভুক্ত কৰি — লগতে ষ্ট্ৰিংত “myClass” থকা উপাদানসমূহ, যেনে .myClass2। সেই অৰ্থত XPath বহল। গতিকে, নাই। মই এইটো কোৱা নাই যে আমি CSS টছ আউট কৰা উচিত আৰু XPath ৰ জৰিয়তে সকলো উপাদান নিৰ্বাচন কৰিবলৈ আৰম্ভ কৰা উচিত। কথাটো সেইটো নহয়৷ কথাটো হ'ল যে XPath এ এনেকুৱা কাম কৰিব পাৰে যিবোৰ CSS এ অতি উপযোগী হ'ব নোৱাৰে আৰু এতিয়াও হ'ব পাৰে, যদিও ই ব্ৰাউজাৰ ষ্টেকত এটা পুৰণি প্ৰযুক্তি আৰু প্ৰথম দৃষ্টিত স্পষ্ট যেন নালাগিবও পাৰে। আহক আমি দুয়োটা প্ৰযুক্তি একেলগে ব্যৱহাৰ কৰো কেৱল আমি পাৰিম বাবেই নহয়, কিন্তু কাৰণ আমি প্ৰক্ৰিয়াটোত XPath ৰ বিষয়ে কিবা এটা শিকিম, ইয়াক আপোনাৰ ষ্টেকত আন এটা সঁজুলি কৰি — যিটো আপুনি হয়তো নাজানিছিল যে সকলো সময়তে আছে! সমস্যাটো হ’ল জাভাস্ক্রিপ্টৰ document.evaluate পদ্ধতি আৰু আমি জাভাস্ক্রিপ্টৰ বাবে CSS API সমূহৰ সৈতে ব্যৱহাৰ কৰা বিভিন্ন প্ৰশ্ন নিৰ্বাচক পদ্ধতিসমূহ অসঙ্গতিপূৰ্ণ। আমাক আৰম্ভ কৰিবলৈ মই এটা সামঞ্জস্যপূৰ্ণ প্ৰশ্ন কৰা এপিআই বনাইছো, যদিও স্বীকাৰ্য্য যে, আমি ইয়াত যি কৰি আছো তাৰ পৰা ই এক বিচ্যুতি হোৱাৰ বাবে মই ইয়াৰ ওপৰত বিশেষ চিন্তা কৰা নাই। ইয়াত এটা পুনৰ ব্যৱহাৰযোগ্য প্ৰশ্ন নিৰ্মাতাৰ এটা যথেষ্ট সহজ কাৰ্য্যকৰী উদাহৰণ দিয়া হৈছে: ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা Pen queryXPath [forked] চাওক। মই দস্তাবেজ বস্তুটোত দুটা পদ্ধতি যোগ কৰিছো: queryCSSSelectors (যিটো মূলতঃ querySelectorAll) আৰু queryXPaths। এই দুয়োটাই এটা queryResults বস্তু ঘূৰাই দিয়ে:

{ queryType: ন'ডসমূহ | ষ্ট্ৰিং | নম্বৰ | বুলিয়ান, ফলাফল: any[] // html উপাদান, xml উপাদান, স্ট্ৰিং, সংখ্যা, বুলিয়ান, queryCSSSelectors: (প্ৰশ্ন: ষ্ট্ৰিং, সংশোধন: বুলিয়ান) => queryResults, queryXpaths: (প্ৰশ্ন: ষ্ট্ৰিং, সংশোধন: বুলিয়ান) => queryResults }

queryCSSSelectors আৰু queryXpaths ফাংচনসমূহে আপুনি সিহতক দিয়া প্ৰশ্নটো ফলাফল এৰেৰ উপাদানসমূহৰ ওপৰত চলায়, যেতিয়ালৈকে ফলাফল এৰে ধৰণৰ ন'ডসমূহৰ হয়, অৱশ্যেই। অন্যথা, ই এটা খালী এৰে আৰু এটা ধৰণৰ ন'ডৰ সৈতে এটা queryResult ঘূৰাই দিব। যদি amend বৈশিষ্ট্য সত্য লে সংহতি কৰা হয়, ফাংচনসমূহে নিজৰ queryResults সলনি কৰিব। কোনো কাৰণতে ইয়াক উৎপাদন পৰিৱেশত ব্যৱহাৰ কৰা উচিত নহয়। মই এইদৰে কৰিছো বিশুদ্ধভাৱে দুটা প্ৰশ্ন এপিআই একেলগে ব্যৱহাৰ কৰাৰ বিভিন্ন প্ৰভাৱ প্ৰদৰ্শন কৰিবলৈ। উদাহৰণ প্ৰশ্ন মই বিভিন্ন XPath প্ৰশ্নৰ কেইটামান উদাহৰণ দেখুৱাব বিচাৰো যিয়ে তেওঁলোকে কৰিব পৰা কিছুমান শক্তিশালী কাম আৰু অন্য পদ্ধতিৰ ঠাইত কেনেকৈ ব্যৱহাৰ কৰিব পাৰি তাক প্ৰদৰ্শন কৰে। প্ৰথম উদাহৰণটো হ'ল //li/text()। ই সকলো li উপাদানক প্ৰশ্ন কৰে আৰু সিহতৰ লিখনী ন'ডসমূহ ঘূৰাই দিয়ে। গতিকে, যদি আমি তলত দিয়া HTML টো প্ৰশ্ন কৰো:

  • এটা
  • দুটা
  • তিনি

...এইটোৱেই ঘূৰাই দিয়া হয়:

{"queryType":"xpathEvaluate","results":["এটা","দুটা","তিনি"],"resultType":"string"}

অৰ্থাৎ আমি তলত দিয়া এৰেটো পাম: ["এটা","দুটা","তিনি"]। সাধাৰণতে, আপুনি li উপাদানসমূহৰ বাবে প্ৰশ্ন কৰিব সেইটো পাবলৈ, সেই প্ৰশ্নৰ ফলাফল এটা এৰেলৈ পৰিবৰ্তন কৰিব, এৰে মেপ কৰিব, আৰু প্ৰতিটো উপাদানৰ লিখনী ন'ড ঘূৰাই দিব। কিন্তু আমি সেইটো অধিক সংক্ষিপ্তভাৱে XPath ৰ সহায়ত কৰিব পাৰো: document.queryXPaths("//li/text()").ফলাফল।

মন কৰক যে এটা লিখনী ন'ড পোৱাৰ উপায় হ'ল text() ব্যৱহাৰ কৰা, যিটো এটা ফাংচন স্বাক্ষৰৰ দৰে দেখা যায় — আৰু সেয়াই। ই এটা উপাদানৰ টেক্সট ন'ড ঘূৰাই দিয়ে। আমাৰ উদাহৰণত মাৰ্কআপত তিনিটা li উপাদান আছে, প্ৰত্যেকতে লিখনী ("এটা", "দুটা", আৰু "তিনি") থাকে। text() প্ৰশ্নৰ আৰু এটা উদাহৰণ চাওঁ আহক। ধৰি লওক এইটো আমাৰ মাৰ্কআপ: চাইন ইন

এটা প্ৰশ্ন লিখোঁ যিয়ে href বৈশিষ্ট্য মান ঘূৰাই দিয়ে: document.queryXPaths("//a[text() = 'চাইন ইন']/@href").ফলাফল।

এইটো বৰ্তমানৰ দস্তাবেজত এটা XPath প্ৰশ্ন, ঠিক শেষৰ উদাহৰণৰ দৰেই, কিন্তু এইবাৰ আমি এটা লিংকৰ href বৈশিষ্ট্য ঘূৰাই দিম (এটা উপাদান) যিয়ে “চাইন ইন” লিখনী ধাৰণ কৰে। প্ৰকৃত ঘূৰি আহিলফলাফল হ'ল ["/login.html"]। XPath কাৰ্য্যসমূহৰ অভাৰভিউ XPath ৰ কেইবাটাও ফাংচন আছে, আৰু আপুনি হয়তো ইয়াৰ সৈতে অচিনাকি৷ কেইবাটাও আছে বুলি মই ভাবো, যিবোৰৰ বিষয়ে জানিবলগীয়া, তলত উল্লেখ কৰা কেইটামান আছে:

starts-withযদি এটা লিখনী এটা বিশেষ অন্য লিখনীৰ উদাহৰণৰ সৈতে আৰম্ভ হয়, starts-with(@href, 'http:') এ সত্য ঘূৰাই দিয়ে যদি এটা href বৈশিষ্ট্য http: ৰ সৈতে আৰম্ভ হয় । containsযদি এটা লিখনীত এটা বিশেষ অন্য লিখনীৰ উদাহৰণ থাকে, contains(text(), "Smashing Magazine") এ সত্য ঘূৰাই দিয়ে যদি এটা লিখনী ন'ডে ইয়াত যিকোনো ঠাইত “Smashing Magazine” শব্দসমূহ ধাৰণ কৰে। countএটা প্ৰশ্নৰ সৈতে কিমান মিল আছে তাৰ এটা গণনা ঘূৰাই দিয়ে। উদাহৰণস্বৰূপ, count(//*[starts-with(@href, 'http:']) এ প্ৰসংগ ন'ডত কিমান সংযোগৰ এটা href বৈশিষ্ট্যৰ সৈতে উপাদান আছে তাৰ এটা গণনা ঘূৰাই দিয়ে যি http: ৰে আৰম্ভ হোৱা লিখনী ধাৰণ কৰে। substringJavaScript substring ৰ দৰে কাম কৰে, বাদে আপুনি স্ট্ৰিং এটা যুক্তি হিচাপে পাছ কৰে । উদাহৰণস্বৰূপে, substring("মোৰ লিখনী", 2, 4) এ "y t" ঘূৰাই দিয়ে। substring-beforeএটা স্ট্ৰিঙৰ অংশ অন্য স্ট্ৰিঙৰ আগত ঘূৰাই দিয়ে। উদাহৰণস্বৰূপে, substing-before("my text", " ") এ "my" ঘূৰাই দিয়ে। একেদৰে, substring-before("hi","bye") এ এটা খালী ষ্ট্ৰিং ঘূৰাই দিয়ে। substring-afterএটা স্ট্ৰিঙৰ অংশটো আন এটা ষ্ট্ৰিঙৰ পিছত ঘূৰাই দিয়ে। উদাহৰণস্বৰূপে, substing-after("my text", " ") এ "text" ঘূৰাই দিয়ে। একেদৰে, substring-after("hi","bye")এ এটা খালী ষ্ট্ৰিং ঘূৰাই দিয়ে। normalize-space আগৰ আৰু পিছৰ বগাস্থান ষ্ট্ৰিপ কৰি আৰু বগাস্থান আখৰৰ ক্ৰমসমূহ এটা স্থানেৰে সলনি কৰি স্বাভাৱিক কৰা হোৱাইটস্পেচৰ সৈতে যুক্তি ষ্ট্ৰিং ঘূৰাই দিয়ে। notএটা বুলিয়ান সত্য ঘূৰাই দিয়ে যদি যুক্তিটো মিছা হয়, অন্যথা মিছা। true বুলিয়ান সত্য ঘূৰাই দিয়ে। false বুলিয়ান false ঘূৰাই দিয়ে। concatজাভাস্ক্রিপ্ট concat ৰ সৈতে একে বস্তু, বাদে আপুনি ইয়াক এটা স্ট্ৰিংত এটা পদ্ধতি হিচাপে চলাব নোৱাৰে । ইয়াৰ পৰিবৰ্তে, আপুনি সংযুক্ত কৰিব বিচৰা সকলো ষ্ট্ৰিং ৰাখে। string-lengthএইটো জাভাস্ক্রিপ্ট string-length ৰ সৈতে একে নহয়, কিন্তু ইয়াক এটা যুক্তি হিচাপে দিয়া স্ট্ৰিঙৰ দৈৰ্ঘ্য ঘূৰাই দিয়ে। translateএইটোৱে এটা ষ্ট্ৰিং লয় আৰু দ্বিতীয় যুক্তিটোক তৃতীয় যুক্তিলৈ সলনি কৰে। উদাহৰণস্বৰূপ, translate("abcdef", "abc", "XYZ") এ XYZdef আউটপুট কৰে।

এই বিশেষ XPath ফাংচনসমূহৰ বাহিৰেও, আন বহুতো ফাংচন আছে যিয়ে সিহঁতৰ জাভাস্ক্রিপ্ট সমকক্ষসমূহৰ সৈতে একে কাম কৰে — বা মূলতঃ যিকোনো প্ৰগ্ৰেমিং ভাষাত সমকক্ষসমূহ — যিবোৰ আপুনি সম্ভৱতঃ উপযোগীও পাব, যেনে মজিয়া, চিলিং, গোল, যোগফল, ইত্যাদি। নিম্নলিখিত ডেমোৱে এই প্ৰতিটো কাৰ্য্য দেখুৱাইছে: Bryan Rasmussen দ্বাৰা Pen XPath Numerical ফাংচনসমূহ [forked] চাওক। মন কৰিব যে, বেছিভাগ ষ্ট্ৰিং মেনিপুলেচন ফাংচনৰ দৰে, বহুতো সংখ্যাগতে এটা ইনপুট লয়। এইটো, অৱশ্যেই, কাৰণ সিহতক প্ৰশ্ন কৰাৰ বাবে ব্যৱহাৰ কৰাৰ কথা, শেষ XPath উদাহৰণৰ দৰে: //li[ফ্ল'ৰ(টেক্সট()) > ২৫০]/@val

যদি আপুনি সিহতক ব্যৱহাৰ কৰে, যেনেকৈ বেছিভাগ উদাহৰণে কৰে, আপুনি ইয়াক পথৰ সৈতে মিল থকা প্ৰথম ন'ডত চলাব। কিছুমান ধৰণ ৰূপান্তৰ কাৰ্য্যও আছে যিবোৰ আপুনি হয়তো এৰাই চলিব লাগে কাৰণ জাভাস্ক্রিপ্টৰ ইতিমধ্যে নিজস্ব ধৰণ ৰূপান্তৰ সমস্যা আছে। কিন্তু এনেকুৱা সময়ো হ’ব পাৰে যেতিয়া আপুনি এটা ষ্ট্ৰিংক আন কোনো নম্বৰৰ সৈতে পৰীক্ষা কৰিবলৈ এটা নম্বৰলৈ ৰূপান্তৰ কৰিব বিচাৰে। কিবা এটাৰ ধৰণ সংহতি কৰা ফাংচনসমূহ হ'ল বুলিয়ান, সংখ্যা, ষ্ট্ৰিং, আৰু ন'ড। এইবোৰ হৈছে গুৰুত্বপূৰ্ণ XPath ডাটাটাইপ। আৰু আপুনি কল্পনা কৰা মতে, এই ফাংচনসমূহৰ বেছিভাগেই DOM ন'ড নহয় ডাটাটাইপসমূহত ব্যৱহাৰ কৰিব পাৰি। উদাহৰণস্বৰূপে, substring-after এ আমি ইতিমধ্যে সামৰি লোৱাৰ দৰে এটা ষ্ট্ৰিং লয়, কিন্তু ই এটা href বৈশিষ্ট্যৰ পৰা ষ্ট্ৰিং হ’ব পাৰে। ই কেৱল এটা ষ্ট্ৰিংও হ'ব পাৰে:

const testSubstringAfter = document.queryXPaths("চাবষ্ট্ৰিং-আফটাৰ('হেল্ল' জগত',' ')");

স্পষ্টভাৱে, এই উদাহৰণে আমাক ফলাফলৰ এৰেটো ["world"] হিচাপে ঘূৰাই দিব। এইটো কাৰ্য্যত দেখুৱাবলৈ, মই DOM ন'ড নহয় বস্তুৰ বিৰুদ্ধে ফাংচন ব্যৱহাৰ কৰি এটা ডেমো পৃষ্ঠা বনাইছো: ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা Pen queryXPath [forked] চাওক। আপুনি অনুবাদ ফাংচনৰ আচৰিত দিশটো মন কৰিব লাগে, যিটো হ'ল যদি আপোনাৰ দ্বিতীয় যুক্তিত এটা আখৰ থাকে (অৰ্থাৎ, আপুনি অনুবাদ কৰিব বিচৰা আখৰৰ তালিকা) আৰু অনুবাদ কৰিবলৈ কোনো মিল থকা আখৰ নাই, সেই আখৰটো আউটপুটৰ পৰা আঁতৰোৱা হয়। এইদৰে, এইটো:

translate('হেল্ল', মোৰ নাম ইনিগো মণ্টোয়া, তুমি মোৰ দেউতাকক হত্যা কৰিলা, মৃত্যুৰ বাবে সাজু হোৱা','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')

...স্ট্ৰিঙৰ ফলাফল, স্থানসমূহ অন্তৰ্ভুক্ত কৰি: [" * * ** "]

অৰ্থাৎ “a” আখৰটো এষ্টেৰিস্ক (*) লৈ অনুবাদ কৰা হৈছে, কিন্তু লক্ষ্য ষ্ট্ৰিং দিয়া অনুবাদ নথকা আন প্ৰতিটো আখৰ সম্পূৰ্ণৰূপে আঁতৰোৱা হয়। বগা ঠাইখিনিয়েই আমাৰ হাতত বাকী আছেঅনুবাদ কৰা “ক” আখৰৰ মাজত। তাৰ পিছত আকৌ, এই প্ৰশ্নটো:

translate('হেল্ল', মোৰ নাম ইনিগো মণ্টোয়া, তুমি মোৰ দেউতাকক হত্যা কৰিলা, মৃত্যুৰ বাবে সাজু হ'বা','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************************')")

...ৰ সমস্যা নাই আৰু এটা ফলাফল আউটপুট কৰে যি এনেকুৱা দেখা যায়:

"***** ** **** ** ***** ******* *** ****** ** ****** ******* ** ***"

ই আপোনাক আঘাত কৰিব পাৰে যে জাভাস্ক্রিপ্টত XPath অনুবাদ ফলনে যি কৰে ঠিক সেই কাম কৰিবলৈ কোনো সহজ উপায় নাই, যদিও বহু ব্যৱহাৰৰ বাবে, নিয়মীয়া এক্সপ্ৰেচনৰ সৈতে replaceAll ইয়াক নিয়ন্ত্ৰণ কৰিব পাৰে। আপুনি মই প্ৰদৰ্শন কৰা একেটা পদ্ধতি ব্যৱহাৰ কৰিব পাৰে, কিন্তু যদি আপুনি বিচৰা সকলো ষ্ট্ৰিংসমূহ অনুবাদ কৰা হয় তেন্তে সেয়া উপ-অনুকূল। নিম্নলিখিত ডেমোৱে এটা জাভাস্ক্রিপ্ট সংস্কৰণ প্ৰদান কৰিবলে XPath ৰ অনুবাদ ফলন ৰেপ কৰে: ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা পেন অনুবাদ ফাংচন [forked] চাওক। এনেকুৱা কিবা এটা ক’ত ব্যৱহাৰ কৰিব পাৰে? তিনিটা স্থানৰ অফছেটৰ সৈতে চিজাৰ চাইফাৰ এনক্ৰিপচন বিবেচনা কৰক (যেনে, ৪৮ খ্ৰীষ্টপূৰ্বৰ পৰা শীৰ্ষ-অফ-দ্য-লাইন এনক্ৰিপচন):

translate("চিজাৰে ৰুবিকন পাৰ হোৱাৰ পৰিকল্পনা কৰিছে!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

ইনপুট টেক্সট “চিজাৰে ৰুবিকন পাৰ হোৱাৰ পৰিকল্পনা কৰিছে!” ফলত “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” বিভিন্ন সম্ভাৱনাৰ আন এটা ক্ষন্তেকীয়া উদাহৰণ দিবলৈ মই এটা মেটাল ফাংচন বনালোঁ যিয়ে এটা ষ্ট্ৰিং ইনপুট লয় আৰু লিখনী ঘূৰাই দিবলৈ এটা অনুবাদ ফাংচন ব্যৱহাৰ কৰে, উমলাউট লোৱা সকলো আখৰকে ধৰি। ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা পেন মেটাল ফাংচন [forked] চাওক।

const ধাতু = (ষ্ট্ৰ) => { return translate(str, "AOUaou","ÄÖÜäöü"); }

আৰু, যদি লিখনী দিয়া হয় “মটলি ক্ৰু ৰুলছ, ৰক অন ডুডছ!”, ঘূৰাই দিয়ে “মটলি ক্ৰু ৰুলছ, ৰক অন ডুডছ!” স্পষ্টভাৱে, এই কাৰ্য্যৰ সকলো ধৰণৰ পেৰ’ডি ব্যৱহাৰ থাকিব পাৰে। যদি সেইজন আপুনি, তেন্তে এই টিভিট্ৰ’পছৰ প্ৰবন্ধটোৱে আপোনাক প্ৰচুৰ প্ৰেৰণা প্ৰদান কৰা উচিত। XPath ৰ সৈতে CSS ব্যৱহাৰ কৰা XPath ৰ সৈতে CSS নিৰ্বাচকসমূহ ব্যৱহাৰ কৰাৰ আমাৰ মূল কাৰণ মনত ৰাখিব: CSS এ এটা ক্লাছ কি তাক প্ৰায় বুজি পায়, আনহাতে XPath ৰ সৈতে আপুনি কৰিব পৰা সৰ্বোত্তমটো হৈছে ক্লাছ বৈশিষ্ট্যৰ ষ্ট্ৰিং তুলনা। সেইটোৱে বেছিভাগ ক্ষেত্ৰতে কাম কৰিব। কিন্তু যদি আপুনি কেতিয়াবা এনে পৰিস্থিতিত পৰে য'ত, ধৰক, কোনোবাই .primaryLinks আৰু .primaryLinks2 নামৰ ক্লাছ সৃষ্টি কৰে আৰু আপুনি .primaryLinks ক্লাছ পাবলৈ XPath ব্যৱহাৰ কৰি আছে, তেন্তে আপুনি সম্ভৱতঃ সমস্যাত পৰিব। যেতিয়ালৈকে তেনেকুৱা একো মূৰ্খতা নাই, আপুনি হয়তো XPath ব্যৱহাৰ কৰিব৷ কিন্তু মই দুখ পাইছো যে মই এনেকুৱা ঠাইত কাম কৰিছো য’ত মানুহে সেই ধৰণৰ মূৰ্খ কাম কৰে। ইয়াত CSS আৰু XPath একেলগে ব্যৱহাৰ কৰা আন এটা ডেমো আছে৷ ই দেখুৱাই যে যেতিয়া আমি ক’ডটো ব্যৱহাৰ কৰি এটা প্ৰসংগ ন’ডত এটা XPath চলাওঁ যিটো ডকুমেণ্টৰ ন’ড নহয়। ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা পেন css আৰু xpath একেলগে চাওক [forked]। CSS প্ৰশ্নটো হৈছে .relatedarticles a, যি এটা .relatedarticles শ্ৰেণী নিযুক্ত কৰা এটা div ত দুটা a উপাদান আনে। ইয়াৰ পিছত তিনিটা “বেয়া” প্ৰশ্ন, অৰ্থাৎ এনে প্ৰশ্ন যিবোৰে এই উপাদানসমূহক প্ৰসংগ ন’ড হিচাপে লৈ চলাৰ সময়ত আমি বিচৰা ধৰণে নকৰে। আপুনি আশা কৰাতকৈ তেওঁলোকে কিয় বেলেগ আচৰণ কৰিছে সেয়া মই বুজাব পাৰো। প্ৰশ্ন কৰা তিনিটা বেয়া প্ৰশ্ন হ’ল-

//text(): দস্তাবেজত থকা সকলো লিখনী ঘূৰাই দিয়ে। //a/text(): দস্তাবেজত সংযোগসমূহৰ ভিতৰৰ সকলো লিখনী ঘূৰাই দিয়ে। ./a/text(): কোনো ফলাফল নিদিয়ে।

এই ফলাফলসমূহৰ কাৰণ হ'ল যে আপোনাৰ প্ৰসংগ CSS প্ৰশ্নৰ পৰা ঘূৰাই দিয়া এটা উপাদান হ'লেও, // গোটেই দস্তাবেজটোৰ বিপৰীতে যায়। এইটোৱেই হৈছে XPath ৰ শক্তি; CSS এ এটা ন'ডৰ পৰা এটা পূৰ্বপুৰুষলৈ আৰু তাৰ পিছত সেই পূৰ্বপুৰুষৰ এটা ভাই-ভনীলৈ যাব নোৱাৰে, আৰু সেই ভাই-ভনীৰ এটা বংশধৰলৈ নামি যাব নোৱাৰে। কিন্তু XPath এ পাৰে। ইতিমধ্যে, ./ এ বৰ্তমান ন'ডৰ সন্তানসকলক প্ৰশ্ন কৰে, য'ত বিন্দু (.) এ বৰ্তমান ন'ডক প্ৰতিনিধিত্ব কৰে, আৰু আগলৈ স্লেছে (/) কোনো সন্তান ন'ডলৈ যোৱাক প্ৰতিনিধিত্ব কৰে — ই এটা বৈশিষ্ট্য, উপাদান, বা লিখনী নেকি পথৰ পৰৱৰ্তী অংশৰ দ্বাৰা নিৰ্ধাৰিত হয়। কিন্তু CSS প্ৰশ্নৰ দ্বাৰা নিৰ্বাচিত কোনো উপাদান সন্তান নাই, গতিকে সেই প্ৰশ্নেও একো ঘূৰাই নিদিয়ে। সেই শেষৰ ডেমোটোত তিনিটা ভাল প্ৰশ্ন আছে:

.//পাঠ্য(), ./পাঠ্য(), normalize-space(./পাঠ্য())।

normalize-space প্ৰশ্নে XPath ফলন ব্যৱহাৰ প্ৰদৰ্শন কৰে, কিন্তু অন্য প্ৰশ্নসমূহত অন্তৰ্ভুক্ত এটা সমস্যাও সমাধান কৰে। HTML ৰ গঠন এনেদৰে কৰা হৈছে:

Selenium WebDriver ৰ সৈতে আপোনাৰ বৈশিষ্ট্য পৰীক্ষণ স্বয়ংক্ৰিয় কৰা

প্ৰশ্নই লিখনী ন'ডৰ আৰম্ভণি আৰু শেষত এটা শাৰী ফিড ঘূৰাই দিয়ে,আৰু normalize-space এ ইয়াক আঁতৰাই পেলায়। যিকোনো XPath ফলন ব্যৱহাৰ কৰা যি এটা ইনপুটৰ সৈতে এটা বুলিয়ানৰ বাহিৰে অন্য কিবা এটা ঘূৰাই দিয়ে XPath অন্য ফলনসমূহৰ বাবে প্ৰযোজ্য। নিম্নলিখিত ডেমোৱে কেইবাটাও উদাহৰণ দেখুৱাইছে: Bryan Rasmussen দ্বাৰা Pen xpath ফাংচনসমূহৰ উদাহৰণ [forked] চাওক। প্ৰথম উদাহৰণটোৱে এটা সমস্যা দেখুৱাইছে যাৰ প্ৰতি আপুনি সাৱধান হ’ব লাগে। বিশেষকৈ, নিম্নলিখিত ক'ড:

document.queryXPaths("চাবষ্ট্ৰিং-আফটাৰ(//a/@href,'https://')");

...এটা ষ্ট্ৰিং ঘূৰাই দিয়ে:

"www.smashingmagazine.com/2018/04/ফিচাৰ-টেষ্টিং-চেলেনিয়াম-ৱেবড্ৰাইভাৰ/"

ইয়াৰ যুক্তি আছে নহয়নে? এই ফাংচনসমূহে এৰেসমূহ ঘূৰাই নিদিয়ে বৰঞ্চ একক ষ্ট্ৰিং বা একক সংখ্যাসমূহ ঘূৰাই দিয়ে। একাধিক ফলাফলৰ সৈতে যিকোনো ঠাইত ফাংচন চলালে কেৱল প্ৰথম ফলাফলহে পোৱা যায়। দ্বিতীয় ফলাফলটোৱে দেখুৱাইছে যে আমি প্ৰকৃততে কি বিচাৰো:

document.queryCSSSelectors("এটা").queryXPaths("চাবষ্ট্ৰিং-পিছত(./@href,'https://')");

যি দুটা ষ্ট্ৰিংৰ এটা এৰে ঘূৰাই দিয়ে:

["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/স্বয়ংক্ৰিয়-পৰীক্ষাৰ ফলাফল-প্ৰৱেশযোগ্যতা-উন্নত/"]

XPath ফাংচনসমূহক জাভাস্ক্রিপ্টৰ ফাংচনসমূহৰ দৰেই নেষ্ট কৰিব পাৰি। গতিকে, যদি আমি Smashing Magazine URL গঠন জানো, আমি তলত দিয়া কামবোৰ কৰিব পাৰো (টেমপ্লেট লিটাৰেল ব্যৱহাৰ কৰাটো বাঞ্ছনীয়): `অনুবাদ কৰক( substring( ছাবষ্ট্ৰিং-আফটাৰ(./@href, ‘www.smashingmagazine.com/') ,৯), '/','')`

এইটো অলপ বেছি জটিল হৈ পৰিছে যে ই কি কৰে সেই বিষয়ে বৰ্ণনা কৰা মন্তব্যৰ প্ৰয়োজন হৈছে: www.smashingmagazine.com/ ৰ পিছত href বৈশিষ্ট্যৰ পৰা URL ৰ সকলো লওক, প্ৰথম নটা আখৰ আঁতৰাই দিয়ক, তাৰ পিছত ফৰৱাৰ্ড স্লেছ (/) আখৰটো একোলৈ অনুবাদ কৰক যাতে শেষৰ ফৰৱাৰ্ড স্লেছৰ পৰা মুক্তি পায়। ফলস্বৰূপে পোৱা এৰে:

["feature-testing-selenium-webdriver","স্বয়ংক্ৰিয়-পৰীক্ষা-ফল-প্ৰবেশযোগ্যতা-উন্নত"]

অধিক XPath ব্যৱহাৰৰ ক্ষেত্ৰ XPath সঁচাকৈয়ে পৰীক্ষাত জিলিকি উঠিব পাৰে। কাৰণটো দেখাটো কঠিন নহয়, কিয়নো XPath ব্যৱহাৰ কৰি DOM ৰ প্ৰতিটো উপাদান, DOM ৰ যিকোনো স্থানৰ পৰা পাব পাৰি, আনহাতে CSS য়ে নোৱাৰে। আপুনি বহুতো আধুনিক নিৰ্মাণ ব্যৱস্থাপ্ৰণালীত CSS শ্ৰেণীসমূহ সামঞ্জস্যপূৰ্ণ হৈ থকাৰ ওপৰত গণনা কৰিব নোৱাৰে, কিন্তু XPath ৰ সৈতে, আমি এটা পৰিৱৰ্তিত DOM গঠন নিৰ্বিশেষে এটা উপাদানৰ লিখনী বিষয়বস্তু কি সেই বিষয়ে অধিক শক্তিশালী মিল কৰিবলৈ সক্ষম হৈছো। এনে কৌশলৰ ওপৰত গৱেষণা কৰা হৈছে যিয়ে আপোনাক স্থিতিস্থাপক XPath পৰীক্ষা কৰিবলৈ অনুমতি দিয়ে। পৰীক্ষাসমূহ ফ্লেক আউট আৰু বিফল হোৱাতকৈ বেয়া একো নাই কেৱল কাৰণ এটা CSS নিৰ্বাচকে আৰু কাম নকৰে কাৰণ কিবা এটাৰ নাম সলনি কৰা হৈছে বা আঁতৰোৱা হৈছে। XPath একাধিক লোকেটৰ নিষ্কাশনতো সঁচাকৈয়ে মহান। এটা উপাদানৰ সৈতে মিলাবলৈ XPath প্ৰশ্নসমূহ ব্যৱহাৰ কৰাৰ এটাতকৈ অধিক উপায় আছে। চি এছ এছৰ ক্ষেত্ৰতো একেই কথা। কিন্তু XPath প্ৰশ্নসমূহে অধিক লক্ষ্য নিৰ্ধাৰণ কৰা ধৰণে বস্তুসমূহত ড্ৰিল কৰিব পাৰে যিয়ে কি ঘূৰাই দিয়া হয় তাক সীমিত কৰে, আপোনাক এটা নিৰ্দিষ্ট মিল বিচাৰিবলৈ অনুমতি দিয়ে য'ত কেইবাটাও সম্ভাৱ্য মিল থাকিব পাৰে। উদাহৰণস্বৰূপে, আমি এটা নিৰ্দিষ্ট h2 উপাদান ঘূৰাই দিবলৈ XPath ব্যৱহাৰ কৰিব পাৰো যি এটা div ৰ ভিতৰত থাকে যি এটা ভাই-ভনী div তৎক্ষণাত অনুসৰণ কৰে যি, পাছলৈ, এটা data-testID="leader" বৈশিষ্ট্যৰ সৈতে এটা সন্তান ছবি উপাদান ধাৰণ কৰে:

এই শিৰোনাম নাপাব

এই শিৰোনামটোও নাপাব

নেতা প্ৰতিমুৰ্তিৰ বাবে হেডাৰ

এই প্ৰশ্নটো হ'ল: দস্তাবেজ.queryXPaths(` //div[ follow-sibling::div[1] /img[@data-testID='নেতা'] ] /h2/ text() `);

সেই সকলোবোৰ কেনেকৈ একেলগে হয় চাবলৈ এটা ডেমো ড্ৰপ কৰা যাওক: ব্ৰাইয়ান ৰাছমুচেনৰ দ্বাৰা পেন কমপ্লেক্স H2 প্ৰশ্ন [forked] চাওক। গতিকে, হয়। XPath ব্যৱহাৰ কৰি এটা পৰীক্ষাত যিকোনো উপাদানৰ বাবে বহুতো সম্ভাৱ্য পথ আছে। XSLT 1.0 অবচয় মই আৰম্ভণিতে উল্লেখ কৰিছিলো যে Chrome দলটোৱে ব্ৰাউজাৰৰ পৰা XSLT 1.0 সমৰ্থন আঁতৰোৱাৰ পৰিকল্পনা কৰিছে। সেয়া গুৰুত্বপূৰ্ণ কাৰণ XSLT 1.0 এ দস্তাবেজ ৰূপান্তৰৰ বাবে XML-কেন্দ্ৰিক প্ৰগ্ৰেমিং ব্যৱহাৰ কৰে যি, পাছলৈ, XPath 1.0 ৰ ওপৰত নিৰ্ভৰ কৰে, যিটো বেছিভাগ ব্ৰাউজাৰত পোৱা যায়। যেতিয়া তেনেকুৱা হ’ব, আমি XPath ৰ এটা মূল উপাদান হেৰুৱাম৷ কিন্তু এই কথাটো লক্ষ্য কৰিলে যে XPath সঁচাকৈয়ে পৰীক্ষা লিখাৰ বাবে অতি উত্তম, মই বিবেচনা কৰোঁ যে সামগ্ৰিকভাৱে XPath অতি সোনকালে নোহোৱা হোৱাৰ সম্ভাৱনা নাই। এইখিনিতে ক’ব পাৰি যে মই লক্ষ্য কৰিছো যে কোনো বৈশিষ্ট্য কাঢ়ি নিলে মানুহে আগ্ৰহী হৈ পৰে। আৰু XSLT 1.0 অবচ্যুত হোৱাৰ ক্ষেত্ৰত সেয়া নিশ্চিতভাৱে সত্য। হেকাৰ নিউজত এই অৱজ্ঞাৰ বিৰুদ্ধে যুক্তিৰে ভৰা এটা সম্পূৰ্ণ আলোচনা চলি আছে৷ পোষ্টটো নিজেই XSLT ৰ সৈতে ব্লগিং ফ্ৰেমৱৰ্ক তৈয়াৰ কৰাৰ এক উত্তম উদাহৰণ। আপুনিআলোচনাটো নিজেই পঢ়িব পাৰে, কিন্তু ই জাভাস্ক্রিপ্টক কেনেকৈ XLST ৰ বাবে সেই ধৰণৰ ক্ষেত্ৰসমূহ নিয়ন্ত্ৰণ কৰিবলে এটা শিম হিচাপে ব্যৱহাৰ কৰিব পাৰি তাৰ ওপৰত সোমাই পৰে। মই ব্ৰাউজাৰসমূহে SaxonJS ব্যৱহাৰ কৰিব লাগে বুলিও পৰামৰ্শ দেখিছো, যিটো জাভাস্ক্রিপ্টৰ Saxon XSLT, XQUERY, আৰু XPath ইঞ্জিনসমূহৰ এটা পৰ্ট। সেইটো এটা আকৰ্ষণীয় ধাৰণা, বিশেষকৈ কাৰণ Saxon-JS এ এই ধাৰ্য্যকৰণসমূহৰ বৰ্তমান সংস্কৰণ প্ৰণয়ন কৰে, আনহাতে 1.0 ৰ বাহিৰত XPath বা XSLT ৰ কোনো সংস্কৰণ প্ৰণয়ন কৰা কোনো ব্ৰাউজাৰ নাই, আৰু XQuery প্ৰণয়ন কৰা কোনো নাই। চেক্সনজেএছ আৰু চেক্সন ইঞ্জিনৰ অন্যান্য সংস্কৰণৰ আঁৰৰ কোম্পানী চেক্সোনিকাৰ নৰ্ম ট’ভেই-ৱালছৰ ওচৰলৈ হাত আগবঢ়ালোঁ। তেওঁ ক’লে: “যদি কোনো ব্ৰাউজাৰ বিক্ৰেতাই ব্ৰাউজাৰত আধুনিক এক্সএমএল প্ৰযুক্তিসমূহ একত্ৰিত কৰাৰ বাবে SaxonJSক আৰম্ভণিৰ বিন্দু হিচাপে ল’বলৈ আগ্ৰহী হয়, তেন্তে আমি তেওঁলোকৰ সৈতে ইয়াৰ বিষয়ে আলোচনা কৰিবলৈ ৰোমাঞ্চিত হ’ম।”— Norm Tovey-Walsh

কিন্তু লগতে লগতে কয় যে: 'মই যদি কোনোবাই ভাবিছিল যে SaxonJS বৰ্তমানৰ ৰূপত লৈ ইয়াক অপৰিৱৰ্তিতভাৱে ব্ৰাউজাৰ বিল্ডত ড্ৰপ কৰাটো আদৰ্শ পদ্ধতি হ'ব বুলি ভাবিলে মই অতি আচৰিত হ'ম

মন কৰিবলগীয়া যে ট’ভেই-ৱালছৰ এই মন্তব্য এক্সএছএলটিৰ অৱজ্ঞাৰ ঘোষণাৰ প্ৰায় এসপ্তাহ আগতেই আহিছিল। উপসংহাৰ মই আৰু আগবাঢ়িব পাৰিলোঁ। কিন্তু মই আশা কৰোঁ ই XPath ৰ শক্তি প্ৰদৰ্শন কৰিছে আৰু আপোনালোকক ইয়াক কেনেকৈ ব্যৱহাৰ কৰিব লাগে তাক প্ৰদৰ্শন কৰা বহুতো উদাহৰণ দিছে। ই ব্ৰাউজাৰ ষ্টেকত পুৰণি প্ৰযুক্তিৰ এটা নিখুঁত উদাহৰণ যিটোৰ আজিও প্ৰচুৰ উপযোগিতা আছে, যদিও আপুনি ইয়াৰ অস্তিত্ব কেতিয়াও নাজানে বা ইয়াৰ বাবে হাত আগবঢ়োৱাৰ কথা কেতিয়াও বিবেচনা কৰা নাই৷ অধিক পঢ়া

এই প্ৰবন্ধটোৱে স্থিতিস্থাপক পৰীক্ষা লিখাৰ বাবে বহুতো XPath উদাহৰণ প্ৰদান কৰে। XPath (MDN)এইটো এটা আৰম্ভ কৰিবলৈ এটা উৎকৃষ্ট স্থান যদি আপুনি XPath কেনেকৈ কাম কৰে বিতংভাৱে এটা কাৰিকৰী ব্যাখ্যা বিচাৰে। XPath টিউটোৰিয়েল (ZVON)মই এই টিউটোৰিয়েলটো মোৰ নিজৰ শিক্ষণত আটাইতকৈ সহায়ক বুলি বিবেচনা কৰিছো, বহুতো উদাহৰণ আৰু স্পষ্ট ব্যাখ্যাৰ বাবে ধন্যবাদ। XPatherএই পাৰস্পৰিক সঁজুলিয়ে আপোনাক ক'ডৰ সৈতে প্ৰত্যক্ষভাৱে কাম কৰিবলৈ দিয়ে।

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free