ମୁଁ ବର୍ଷ ବର୍ଷ ଧରି ଏକ ଧାରା ଦେଖିବା ପାଇଁ ଯଥେଷ୍ଟ ଆଗରେ ଅଛି: ଯୁବ ବିକାଶକାରୀମାନେ ଏହାର historical ତିହାସିକ ପ୍ରସଙ୍ଗ ବୁ understanding ି ନପାରି ପ୍ରୋଗ୍ରାମିଂର ଏକ ନୂତନ ପାରାଡିଗମ ସହିତ କାର୍ଯ୍ୟ କରୁଛନ୍ତି | ଅବଶ୍ୟ, କିଛି ନ ଜାଣିବା ସମ୍ପୂର୍ଣ୍ଣ ରୂପେ ବୁ understand ାପଡେ | ବିଭିନ୍ନ ପ୍ରକାରର କ skills ଶଳ ଏବଂ ବିଶେଷତା ସହିତ ୱେବ୍ ଏକ ବହୁତ ବଡ ସ୍ଥାନ ଅଟେ, ଏବଂ ଆମେ ଯାହା ଜାଣୁନାହୁଁ ତାହା ସର୍ବଦା ଜାଣିନାହୁଁ | ଏହି କ୍ଷେତ୍ରରେ ଶିଖିବା ହେଉଛି ଏକ ଘଟଣା ଯାହାକି ଥରେ ଘଟେ ଏବଂ ଶେଷ ହୁଏ | ମାମଲା: ମୋ ଦଳର କେହି ଜଣେ ପଚାରିଥିଲେ ଯେ UI ରେ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଟ୍ୟାବରୁ ଉପଭୋକ୍ତାମାନେ ନେଭିଗେଟ୍ କରୁଛନ୍ତି କି ନାହିଁ ତାହା କହିବା ସମ୍ଭବ କି? ମୁଁ ଜାଭାସ୍କ୍ରିପ୍ଟର ପୂର୍ବାବଲୋକନ ଇଭେଣ୍ଟକୁ ସୂଚାଇଲି | କିନ୍ତୁ ଯେଉଁମାନେ ଏହା ପୂର୍ବରୁ ଏହାର ମୁକାବିଲା କରିଛନ୍ତି ଏହା ସମ୍ଭବ କାରଣ ସେମାନେ ଅନ୍ୟ ସାଇଟରେ ସଞ୍ଚିତ ତଥ୍ୟ ବିଷୟରେ ଆଲର୍ଟ ସହିତ ହିଟ୍ ହୋଇଛନ୍ତି, ଯେଉଁଥି ପାଇଁ ପୂର୍ବରୁ ଲୋଡ୍ ଏକ ସାଧାରଣ ବ୍ୟବହାର ମାମଲା | ଭଲ ପରିମାପ ପାଇଁ ମୁଁ ମୋର ସହକର୍ମୀଙ୍କୁ ପୃଷ୍ଠା ଲୁଚାଇବା ଏବଂ ଦୃଶ୍ୟମାନତା ପରିବର୍ତ୍ତନ ଇଭେଣ୍ଟଗୁଡ଼ିକୁ ମଧ୍ୟ ସୂଚାଇଲି | ମୁଁ ସେ ବିଷୟରେ କିପରି ଜାଣିଲି? କାରଣ ଏହା ଅନ୍ୟ ଏକ ପ୍ରୋଜେକ୍ଟରେ ଆସିଛି, କାରଣ ମୁଁ ପ୍ରଥମେ ଜାଭାସ୍କ୍ରିପ୍ଟ ଶିଖିବାବେଳେ ଏହା ଉପରେ ଅଧ୍ୟୟନ କରିଥିଲି | ପ୍ରକୃତ କଥା ହେଉଛି ଆଧୁନିକ ଫ୍ରଣ୍ଟ-ଏଣ୍ଡ framework ାଞ୍ଚାଗୁଡ଼ିକ ସେମାନଙ୍କ ପୂର୍ବରୁ ଥିବା ଟେକ୍ନୋଲୋଜି ଜଏଣ୍ଟମାନଙ୍କ କାନ୍ଧରେ ଠିଆ ହୋଇଛି | ସେମାନେ ବିସ୍ତୃତ ବିକାଶ ଅଭ୍ୟାସଗୁଡିକ, ପ୍ରାୟତ a ଏକ ଉନ୍ନତ ବିକାଶକାରୀ ଅଭିଜ୍ଞତା ପାଇଁ, ଯାହା ଜାଣିବା କିମ୍ବା ସ୍ପର୍ଶ କରିବାର ଆବଶ୍ୟକତା, ଯାହା ପାରମ୍ପାରିକ ଭାବରେ ଅତ୍ୟାବଶ୍ୟକ ଫ୍ରଣ୍ଟ-ଏଣ୍ଡ ଧାରଣା ଯାହା ସମସ୍ତେ ଜାଣିବା ଉଚିତ୍ | CSS ଅବଜେକ୍ଟ ମଡେଲ୍ (CSSOM) କୁ ବିଚାର କରନ୍ତୁ | ଆପଣ ଆଶା କରିପାରନ୍ତି ଯେ CSS ଏବଂ ଜାଭାସ୍କ୍ରିପ୍ଟରେ କାର୍ଯ୍ୟ କରୁଥିବା ବ୍ୟକ୍ତିଙ୍କ ପାଖରେ CSSOM ଅଭିଜ୍ଞତା ଅଛି, କିନ୍ତୁ ତାହା ସର୍ବଦା ହେବ ନାହିଁ | ଏକ ଇ-କମର୍ସ ସାଇଟ୍ ପାଇଁ ଏକ ରିଆକ୍ଟ ପ୍ରୋଜେକ୍ଟ ଥିଲା ଯେଉଁଠାରେ ମୁଁ ବର୍ତ୍ତମାନ ମନୋନୀତ ଦେୟ ପ୍ରଦାନକାରୀଙ୍କ ପାଇଁ ଏକ ଷ୍ଟାଇଲସିଟ୍ ଲୋଡ୍ କରିବା ଆବଶ୍ୟକ କରୁଥିଲି | ସମସ୍ୟାଟି ହେଲା ଯେ ଷ୍ଟାଇଲସିଟ୍ ପ୍ରତ୍ୟେକ ପୃଷ୍ଠାରେ ଲୋଡ୍ ହେଉଥିଲା ଯେତେବେଳେ ଏହା କେବଳ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପୃଷ୍ଠାରେ ଆବଶ୍ୟକ ଥିଲା | ଏହାକୁ ଘଟାଇବା ପାଇଁ ଡେଭଲପର୍ ଟାସ୍କ ଗତିଶୀଳ ଭାବରେ ଏକ ଷ୍ଟାଇଲ୍ ଶୀଟ୍ ଲୋଡ୍ କରିନାହାଁନ୍ତି | ପୁନଶ୍ଚ, ଏହା ସମ୍ପୁର୍ଣ୍ଣ ଭାବରେ ବୁ able ାପଡେ ଯେତେବେଳେ ପ୍ରତିକ୍ରିୟା ଆପଣ ପାରମ୍ପାରିକ ଉପାୟକୁ ଦୂର କରିଦିଅନ୍ତି | CSSOM ସମ୍ଭବତ your ତୁମର ଦ day ନନ୍ଦିନ କାର୍ଯ୍ୟରେ ଆବଶ୍ୟକ କରୁଥିବା କିଛି ନୁହେଁ | କିନ୍ତୁ ଏହା ସମ୍ଭବତ you ଆପଣଙ୍କୁ ଏକ ସମୟରେ ମଧ୍ୟ ଏକ ସମୟରେ ବନ୍ଦ କରିବାକୁ ପଡିବ | ଏହି ଅନୁଭୂତି ମୋତେ ଏହି ଲେଖା ଲେଖିବାକୁ ପ୍ରେରଣା ଦେଲା | ବନ୍ୟପ୍ରାଣୀରେ ଅନେକ ବିଦ୍ୟମାନ ୱେବ୍ ବ features ଶିଷ୍ଟ୍ୟ ଏବଂ ପ୍ରଯୁକ୍ତିବିଦ୍ୟା ଅଛି ଯାହାକୁ ଆପଣ ନିଜ ଦ work ନନ୍ଦିନ କାର୍ଯ୍ୟରେ ସିଧାସଳଖ ସ୍ପର୍ଶ କରିପାରିବେ ନାହିଁ | ବୋଧହୁଏ ଆପଣ ୱେବ୍ ଡେଭଲପମେଣ୍ଟ୍ ପାଇଁ ପ୍ରାୟତ new ନୂତନ ଅଟନ୍ତି ଏବଂ ସେଗୁଡ଼ିକ ବିଷୟରେ ଆପଣ କେବଳ ଅଜ୍ଞ ଅଟନ୍ତି କାରଣ ଆପଣ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ framework ାଞ୍ଚାର ଅବକ୍ଷୟରେ ଅବତୀର୍ଣ୍ଣ ହୋଇଛନ୍ତି ଯାହା ଆପଣଙ୍କୁ ଗଭୀର ଭାବରେ ଜାଣିବା ଆବଶ୍ୟକ କରେ ନାହିଁ | ମୁଁ XML ବିଷୟରେ ବିଶେଷ ଭାବରେ କହୁଛି, ଯାହା ଆମମାନଙ୍କ ମଧ୍ୟରୁ ଅନେକ ଜାଣନ୍ତି ଏକ ପ୍ରାଚୀନ ଭାଷା HTML ଠାରୁ ସମ୍ପୂର୍ଣ୍ଣ ଭିନ୍ନ ନୁହେଁ | ସମ୍ପ୍ରତି WHATWG ଆଲୋଚନା ହେତୁ ମୁଁ ଏହାକୁ ଆଣିଛି ଯେ XSLT ପ୍ରୋଗ୍ରାମିଂ ଭାବରେ ଜଣାଶୁଣା XML ଷ୍ଟାକର ଏକ ମହତ୍ unk ପୂର୍ଣ୍ଣ ଅଂଶ ବ୍ରାଉଜରରୁ ଅପସାରଣ କରାଯିବା ଉଚିତ | ଏହା ଠିକ୍ ସେହି ପ୍ରକାରର ପୁରାତନ, ବିଦ୍ୟମାନ ଟେକ୍ନୋଲୋଜି ଯାହା ଆମର ବର୍ଷ ବର୍ଷ ଧରି ରହିଥିଲା ଯାହା ମୋ ଦଳରେ ଥିବା CSSOM ପରିସ୍ଥିତି ଭଳି ବ୍ୟବହାରିକ ଭାବରେ ବ୍ୟବହୃତ ହୋଇପାରେ | ଆପଣ ପୂର୍ବରୁ XSLT ସହିତ କାମ କରିଛନ୍ତି କି? ଆସନ୍ତୁ ଦେଖିବା ଯଦି ଆମେ ଏହି ପୁରାତନ ପ୍ରଯୁକ୍ତିବିଦ୍ୟା ଉପରେ ଅଧିକ ନିର୍ଭରଶୀଳ ଏବଂ ଆଜି ବାସ୍ତବ ଦୁନିଆର ସମସ୍ୟାର ମୁକାବିଲା ପାଇଁ XML ପ୍ରସଙ୍ଗ ବାହାରେ ଏହାର ବ features ଶିଷ୍ଟ୍ୟଗୁଡିକୁ ଉପଯୋଗ କରୁ | XPath: କେନ୍ଦ୍ରୀୟ API | ସବୁଠାରୁ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ XML ଟେକ୍ନୋଲୋଜି ଯାହା ବୋଧହୁଏ ଏକ ସିଧା XML ଦୃଷ୍ଟିକୋଣର ବାହାରେ ସବୁଠାରୁ ଉପଯୋଗୀ ହେଉଛି XPath, ଏକ ଜିଜ୍ଞାସା ଭାଷା ଯାହା ଆପଣଙ୍କୁ ଗୋଟିଏ ମୂଳ ଉପାଦାନ ସହିତ ମାର୍କଅପ୍ ଗଛରେ ଯେକ any ଣସି ନୋଡ୍ କିମ୍ବା ଗୁଣ ଖୋଜିବାକୁ ଦେଇଥାଏ | ମୋର XSLT ପାଇଁ ଏକ ବ୍ୟକ୍ତିଗତ ସ୍ନେହ ଅଛି, କିନ୍ତୁ ତାହା ମଧ୍ୟ XPath ଉପରେ ନିର୍ଭର କରେ, ଏବଂ ବ୍ୟକ୍ତିଗତ ସ୍ନେହକୁ ର୍ୟାଙ୍କିଙ୍ଗ୍ ଗୁରୁତ୍ୱରେ ରଖିବା ଆବଶ୍ୟକ | XSLT ଅପସାରଣ ପାଇଁ ଯୁକ୍ତି XPath ବିଷୟରେ କ mention ଣସି ଉଲ୍ଲେଖ କରେ ନାହିଁ, ତେଣୁ ମୁଁ ଭାବୁଛି ଏହା ଏପର୍ଯ୍ୟନ୍ତ ଅନୁମତିପ୍ରାପ୍ତ | ଏହା ଭଲ କାରଣ XPath ହେଉଛି ଏହି ଟେକ୍ନୋଲୋଜିର ସୁଟରେ କେନ୍ଦ୍ରୀୟ ଏବଂ ସବୁଠାରୁ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ API, ବିଶେଷତ when ସାଧାରଣ XML ବ୍ୟବହାର ବାହାରେ କିଛି ବ୍ୟବହାର କରିବାକୁ ଚେଷ୍ଟା କରିବାବେଳେ | ଏହା ଗୁରୁତ୍ because ପୂର୍ଣ କାରଣ, ଯେତେବେଳେ CSS ଚୟନକର୍ତ୍ତାମାନେ ଆପଣଙ୍କ ପୃଷ୍ଠାରେ ଅଧିକାଂଶ ଉପାଦାନ ଖୋଜିବା ପାଇଁ ବ୍ୟବହୃତ ହୋଇପାରନ୍ତି, ସେମାନେ ସେଗୁଡିକୁ ପାଇପାରିବେ ନାହିଁ | ଅଧିକନ୍ତୁ, DOM ରେ ଏହାର ସାମ୍ପ୍ରତିକ ସ୍ଥିତିକୁ ଆଧାର କରି ଏକ ଉପାଦାନ ଖୋଜିବା ପାଇଁ CSS ଚୟନକର୍ତ୍ତା ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ | XPath କରିପାରିବେ | ବର୍ତ୍ତମାନ, ଆପଣମାନଙ୍କ ମଧ୍ୟରୁ କେହି କେହି ଏହାକୁ XPath ଜାଣିଥିବେ, ଏବଂ କେତେକ ହୁଏତ ଜାଣି ନଥିବେ | XPath ଟେକ୍ନୋଲୋଜିର ଏକ ବହୁତ ବଡ କ୍ଷେତ୍ର ଅଟେ, ଏବଂ ମୁଁ ପ୍ରକୃତରେ ସମସ୍ତ ମ ics ଳିକ ଶିକ୍ଷା ଦେଇ ପାରିବି ନାହିଁ ଏବଂ ଏହିପରି ଏକ ଆର୍ଟିକିଲରେ ଆପଣଙ୍କୁ ଏହା କରିବାକୁ ଥଣ୍ଡା ଜିନିଷ ମଧ୍ୟ ଦେଖାଇବି | ମୁଁ ପ୍ରକୃତରେ ସେହି ଲେଖା ଲେଖିବାକୁ ଚେଷ୍ଟା କଲି, କିନ୍ତୁ ହାରାହାରି ସ୍ମାଶିଂ ମ୍ୟାଗେଜିନ ପ୍ରକାଶନ 5000 ଶବ୍ଦରୁ ଅଧିକ ହେବ ନାହିଁ | ମୁଁ ଆଗରୁ ଅଧିକ ଥିଲି2,000 ଶବ୍ଦ ଯେତେବେଳେ ମ bas ଳିକ ମାଧ୍ୟମରେ ଅଧା ବାଟରେ | ତେଣୁ, ମୁଁ XPath ସହିତ ଥଣ୍ଡା ଷ୍ଟଫ୍ କରିବା ଆରମ୍ଭ କରିବାକୁ ଯାଉଛି ଏବଂ ଆପଣଙ୍କୁ କିଛି ଲିଙ୍କ୍ ଦେବି ଯାହାକୁ ଯଦି ଆପଣ ଏହି ଷ୍ଟଫ୍କୁ କ interesting ତୁହଳପ୍ରଦ ମନେ କରନ୍ତି ତେବେ ଆପଣ ମ ics ଳିକ ପାଇଁ ବ୍ୟବହାର କରିପାରିବେ | XPath ଏବଂ CSS ର ମିଶ୍ରଣ | XPath ଅନେକ ଜିନିଷ କରିପାରିବ ଯାହା ଉପାଦାନଗୁଡିକ ପ୍ରଶ୍ନ କରିବା ସମୟରେ CSS ଚୟନକର୍ତ୍ତା କରିପାରିବେ ନାହିଁ | କିନ୍ତୁ CSS ଚୟନକର୍ତ୍ତାମାନେ ମଧ୍ୟ କିଛି ଜିନିଷ କରିପାରିବେ ଯାହା XPath କରିପାରିବ ନାହିଁ, ଯଥା, ଶ୍ରେଣୀ ନାମ ଅନୁଯାୟୀ ପ୍ରଶ୍ନଗୁଡିକ |
CSS XPath .myClass / * [ଧାରଣ କରେ (@ କ୍ଲାସ୍, "myClass")]
ଏହି ଉଦାହରଣରେ, CSS ଉପାଦାନଗୁଡିକ ପଚାରିଥାଏ ଯାହାକି ଏକ .myClass ଶ୍ରେଣୀନାମ ଧାରଣ କରିଥାଏ | ଏହି ସମୟରେ, XPath ଉଦାହରଣ ଉପାଦାନଗୁଡ଼ିକୁ ପଚାରିଥାଏ ଯାହାକି “myClass” ଷ୍ଟ୍ରିଙ୍ଗ୍ ସହିତ ଏକ ଆଟ୍ରିବ୍ୟୁଟ୍ କ୍ଲାସ୍ ଧାରଣ କରିଥାଏ | ଅନ୍ୟ ଶବ୍ଦରେ, ଏହା ଯେକ my ଣସି ଗୁଣରେ myClass ସହିତ ଉପାଦାନଗୁଡିକ ଚୟନ କରେ, .myClass ଶ୍ରେଣୀନାମ ସହିତ ଉପାଦାନଗୁଡିକ - ଏବଂ ଷ୍ଟ୍ରିଙ୍ଗରେ “myClass” ସହିତ ଉପାଦାନଗୁଡିକ, ଯେପରିକି .myClass2 | ସେହି ଅର୍ଥରେ XPath ବ୍ୟାପକ ଅଟେ | ତେଣୁ, ନା। ମୁଁ ପରାମର୍ଶ ଦେଉ ନାହିଁ ଯେ ଆମେ CSS କୁ ଟସ୍ କରିବା ଏବଂ XPath ମାଧ୍ୟମରେ ସମସ୍ତ ଉପାଦାନ ଚୟନ କରିବା ଉଚିତ୍ | ତାହା ନୁହେଁ | କଥାଟି ହେଉଛି ଯେ XPath ଏପରି କାର୍ଯ୍ୟ କରିପାରିବ ଯାହା CSS କରିପାରିବ ନାହିଁ ଏବଂ ଏପର୍ଯ୍ୟନ୍ତ ବହୁତ ଉପଯୋଗୀ ହୋଇପାରେ, ଯଦିଓ ଏହା ବ୍ରାଉଜର୍ ଷ୍ଟାକରେ ଏକ ପୁରାତନ ପ୍ରଯୁକ୍ତିବିଦ୍ୟା ଏବଂ ପ୍ରଥମ ଦେଖାରେ ଏହା ସ୍ପଷ୍ଟ ମନେହୁଏ ନାହିଁ | ଚାଲନ୍ତୁ ଦୁଇଟି ଟେକ୍ନୋଲୋଜିକୁ ଏକାଠି ବ୍ୟବହାର କରିବା କାରଣ ଆମେ ନୁହେଁ, କିନ୍ତୁ ଆମେ ପ୍ରକ୍ରିୟାରେ XPath ବିଷୟରେ କିଛି ଶିଖିବା, ଏହାକୁ ଆପଣଙ୍କ ଷ୍ଟାକରେ ଅନ୍ୟ ଏକ ସାଧନ କରିଦେବା - ଯାହାକୁ ଆପଣ ହୁଏତ ଜାଣି ନଥିବେ! ଅସୁବିଧାଟି ହେଉଛି ଜାଭାସ୍କ୍ରିପ୍ଟର ଡକ୍ୟୁମେଣ୍ଟ୍। ମୂଲ୍ୟାଙ୍କନ ପଦ୍ଧତି ଏବଂ ଜାଭାସ୍କ୍ରିପ୍ଟ ପାଇଁ CSS API ସହିତ ଆମେ ବ୍ୟବହାର କରୁଥିବା ବିଭିନ୍ନ ଜିଜ୍ଞାସା ଚୟନକାରୀ ପଦ୍ଧତି ଅସଙ୍ଗତ | ଆମକୁ ଆରମ୍ଭ କରିବା ପାଇଁ ମୁଁ ଏକ ସୁସଙ୍ଗତ ଜିଜ୍ଞାସା API ପ୍ରସ୍ତୁତ କରିଛି, ଯଦିଓ ସ୍ admitted ୀକାର ଭାବରେ, ମୁଁ ଏଠାରେ ଅଧିକ ଚିନ୍ତା କରି ନାହିଁ କାରଣ ଏହା ଆମେ ଏଠାରେ କରୁଛୁ | ପୁନ re ବ୍ୟବହାର ଯୋଗ୍ୟ ଜିଜ୍ଞାସା କନଷ୍ଟ୍ରକ୍ଟରର ଏକ ସରଳ କାର୍ଯ୍ୟ ଉଦାହରଣ ଏଠାରେ ଅଛି: ବ୍ରାଇନ୍ ରାସମୁସେନ୍ ଙ୍କ ଦ୍ୱାରା ପେନ୍ ଜିଜ୍ଞାସା ପଥ [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ | ମୁଁ ଡକ୍ୟୁମେଣ୍ଟ୍ ଅବଜେକ୍ଟରେ ଦୁଇଟି ପଦ୍ଧତି ଯୋଡିଛି: queryCSSSelectors (ଯାହା ମୁଖ୍ୟତ ery ଜିଜ୍ଞାସା ସିଲେକ୍ଟର୍ ସମସ୍ତ) ଏବଂ queryXPaths | ଉଭୟେ ଏକ ଜିଜ୍ଞାସା ଫଳାଫଳ ବସ୍ତୁ ଫେରସ୍ତ କରନ୍ତି:
{ ଜିଜ୍ଞାସା ପ୍ରକାର: ନୋଡ | string | ସଂଖ୍ୟା | ବୁଲିଅନ୍, ଫଳାଫଳ: ଯେକ any ଣସି [] // html ଉପାଦାନ, xml ଉପାଦାନ, ଷ୍ଟ୍ରିଙ୍ଗ, ସଂଖ୍ୟା, ବୁଲିଅନ୍, queryCSSSelectors: (ଜିଜ୍ଞାସା: ଷ୍ଟ୍ରିଙ୍ଗ୍, ସଂଶୋଧନ: ବୁଲିଅନ୍) => ଜିଜ୍ଞାସା ଫଳାଫଳ, queryXpaths: (ଜିଜ୍ଞାସା: ଷ୍ଟ୍ରିଙ୍ଗ୍, ସଂଶୋଧନ: ବୁଲିଅନ୍) => ଜିଜ୍ଞାସା ଫଳାଫଳ | }
ଜିଜ୍ଞାସା CSSelectors ଏବଂ queryXpaths ଫଙ୍କସନ୍ ଗୁଡିକ ଫଳାଫଳ ଆରେରେ ଥିବା ଉପାଦାନଗୁଡ଼ିକ ଉପରେ ଆପଣ ଦେଇଥିବା ଜିଜ୍ଞାସାକୁ ଚଲାନ୍ତି, ଯେପର୍ଯ୍ୟନ୍ତ ଫଳାଫଳ ଆରେ ଟାଇପ୍ ନୋଡଗୁଡିକର ଅଟେ | ଅନ୍ୟଥା, ଏହା ଏକ ଖାଲି ଆରେ ଏବଂ ଏକ ପ୍ରକାର ନୋଡ୍ ସହିତ ଏକ ପ୍ରଶ୍ନର ଫଳାଫଳ ଫେରସ୍ତ କରିବ | ଯଦି ସଂଶୋଧନ ପ୍ରପର୍ଟି ଟ୍ରୁ ସେଟ୍ ହୋଇଛି, ଫଙ୍କସନ୍ଗୁଡ଼ିକ ସେମାନଙ୍କର ନିଜସ୍ୱ ଜିଜ୍ଞାସା ପରିବର୍ତ୍ତନ କରିବେ | କ circumstances ଣସି ପରିସ୍ଥିତିରେ ଏହାକୁ ଏକ ଉତ୍ପାଦନ ପରିବେଶରେ ବ୍ୟବହାର କରିବା ଉଚିତ୍ ନୁହେଁ | ଦୁଇଟି ଜିଜ୍ଞାସା API କୁ ଏକାଠି ବ୍ୟବହାର କରିବାର ବିଭିନ୍ନ ପ୍ରଭାବ ପ୍ରଦର୍ଶନ କରିବାକୁ ମୁଁ ଏହାକୁ ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ କରୁଛି | ଉଦାହରଣ ପ୍ରଶ୍ନଗୁଡିକ | ମୁଁ ବିଭିନ୍ନ XPath ଜିଜ୍ଞାସାର କିଛି ଉଦାହରଣ ଦେଖାଇବାକୁ ଚାହେଁ ଯାହା କିଛି ଶକ୍ତିଶାଳୀ ଜିନିଷ ପ୍ରଦର୍ଶନ କରେ ଯାହା ସେମାନେ କରିପାରିବେ ଏବଂ ଅନ୍ୟ ଆଭିମୁଖ୍ୟ ସ୍ଥାନରେ କିପରି ବ୍ୟବହାର କରାଯାଇପାରିବ | ପ୍ରଥମ ଉଦାହରଣ ହେଉଛି // li / text () | ଏହା ସମସ୍ତ li ଉପାଦାନଗୁଡିକୁ ପ୍ରଶ୍ନ କରେ ଏବଂ ସେମାନଙ୍କର ପାଠ୍ୟ ନୋଡ୍ଗୁଡ଼ିକୁ ଫେରସ୍ତ କରେ | ତେଣୁ, ଯଦି ଆମେ ନିମ୍ନଲିଖିତ HTML କୁ ପ୍ରଶ୍ନ କରିବା |
- ଗୋଟିଏ li>
- ଦୁଇଟି li>
- ତିନି li>
… ଏହା ହିଁ ଫେରସ୍ତ ହୋଇଛି:
{"queryType": "xpathEvaluate", "results": ["one", "two", "three"], "resultType": "string"}
ଅନ୍ୟ ଶବ୍ଦରେ, ଆମେ ନିମ୍ନଲିଖିତ ଆରେ ପାଇଥାଉ: ["ଗୋଟିଏ", "ଦୁଇ", "ତିନି"] | ସାଧାରଣତ ,, ଆପଣ ଏହାକୁ ପାଇବା ପାଇଁ li ଉପାଦାନଗୁଡିକ ପାଇଁ ଜିଜ୍ଞାସା କରିବେ, ସେହି ଜିଜ୍ଞାସାର ଫଳାଫଳକୁ ଏକ ଆରେ ପରିଣତ କରିବେ, ଆରେ ମାନଚିତ୍ର କରିବେ ଏବଂ ପ୍ରତ୍ୟେକ ଉପାଦାନର ପାଠ୍ୟ ନୋଡ୍ ଫେରସ୍ତ କରିବେ | କିନ୍ତୁ ଆମେ XPath ସହିତ ଅଧିକ ସଂକ୍ଷେପରେ ତାହା କରିପାରିବା: document.queryXPaths ("// li / text ()") ଫଳାଫଳ |
ଧ୍ୟାନ ଦିଅନ୍ତୁ ଯେ ଟେକ୍ସଟ୍ ନୋଡ୍ ପାଇବା ପାଇଁ ଉପାୟ ହେଉଛି ଟେକ୍ସଟ୍ () ବ୍ୟବହାର କରିବା, ଯାହା ଏକ ଫଙ୍କସନ୍ ସ୍ ature ାକ୍ଷର ପରି ଦେଖାଯାଏ - ଏବଂ ଏହା ହେଉଛି | ଏହା ଏକ ଉପାଦାନର ଟେକ୍ସଟ୍ ନୋଡ୍ ରିଟର୍ନ କରେ | ଆମର ଉଦାହରଣରେ, ମାର୍କଅପ୍ ରେ ତିନୋଟି li ଉପାଦାନ ଅଛି, ପ୍ରତ୍ୟେକଟି ପାଠ୍ୟ ଧାରଣ କରିଥାଏ ("ଗୋଟିଏ", "ଦୁଇ", ଏବଂ "ତିନି") |
ଏକ ଟେକ୍ସଟ୍ () ଜିଜ୍ ery ାସା ର ଆଉ ଏକ ଉଦାହରଣ ଦେଖିବା | ଧରନ୍ତୁ ଏହା ହେଉଛି ଆମର ମାର୍କଅପ୍:
ଚାଲନ୍ତୁ ଏକ ପ୍ରଶ୍ନ ଲେଖିବା ଯାହା href ଗୁଣଧର୍ମ ମୂଲ୍ୟ ଫେରସ୍ତ କରେ: document.queryXPaths ("// a [text () = 'ସାଇନ୍ ଇନ୍'] / @ href") ଫଳାଫଳ |
ଶେଷ ଡକ୍ୟୁମେଣ୍ଟ୍ ପରି ସାମ୍ପ୍ରତିକ ଡକ୍ୟୁମେଣ୍ଟ୍ ଉପରେ ଏହା ଏକ XPath ଜିଜ୍ଞାସା, କିନ୍ତୁ ଏଥର ଆମେ ଏକ ଲିଙ୍କ୍ (ଏକ ଉପାଦାନ) ର href ଆଟ୍ରିବ୍ୟୁଟ୍ ଫେରାଇବୁ ଯାହା “ସାଇନ୍ ଇନ୍” ପାଠ୍ୟ ଧାରଣ କରେ | ପ୍ରକୃତ ପ୍ରତ୍ୟାବର୍ତ୍ତନ |ଫଳାଫଳ ହେଉଛି ["/login.html"] | XPath କାର୍ଯ୍ୟଗୁଡ଼ିକ ସମୀକ୍ଷା ସେଠାରେ ଅନେକ XPath କାର୍ଯ୍ୟ ଅଛି, ଏବଂ ଆପଣ ବୋଧହୁଏ ସେମାନଙ୍କ ସହିତ ଅପରିଚିତ | ମୁଁ ଭାବୁଛି, ଅନେକ ଅଛି, ଯାହା ନିମ୍ନଲିଖିତକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରି ଜାଣିବା ଯୋଗ୍ୟ:
ଯଦି ଆରମ୍ଭ ହୁଏ-ଯଦି ଏକ ପାଠ୍ୟ ଅନ୍ୟ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପାଠ୍ୟ ଉଦାହରଣ ସହିତ ଆରମ୍ଭ ହୁଏ, ତେବେ ଆରମ୍ଭ ହୁଏ (@href, 'http:') ଯଦି ଏକ href ଗୁଣ http: ରୁ ଆରମ୍ଭ ହୁଏ ଧାରଣ କରେ ଯଦି ଏକ ପାଠ୍ୟ ଅନ୍ୟ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପାଠ୍ୟ ଉଦାହରଣ ଧାରଣ କରେ, ଧାରଣ କରେ (ପାଠ୍ୟ (), “ସ୍ମାଶିଂ ମ୍ୟାଗେଜିନ”) ଯଦି କ text ଣସି ଟେକ୍ସଟ୍ ନୋଡରେ “ଧୂଳିସାତ ପତ୍ରିକା” ଶବ୍ଦ ଧାରଣ କରେ ଏକ ପ୍ରଶ୍ନରେ କେତେ ମ୍ୟାଚ୍ ଅଛି ତାହାର ଏକ ଗଣନା ଫେରସ୍ତ କରେ | ଉଦାହରଣ ସ୍ୱରୂପ, ଗଣନା (// * [ଆରମ୍ଭ-ସହିତ (@href, 'http:']) ଏକ ଗଣନାକୁ ଫେରସ୍ତ କରେ ଯେ ପ୍ରସଙ୍ଗ ନୋଡରେ କେତେ ଲିଙ୍କ୍ ଅଛି, ଏକ href ଗୁଣ ସହିତ ଉପାଦାନ ଅଛି ଯାହାକି http: ରୁ ଆରମ୍ଭ ହୋଇଥିବା ପାଠ୍ୟ ଧାରଣ କରିଥାଏ | ସବଷ୍ଟ୍ରିଙ୍ଗ୍ ଜାଭାସ୍କ୍ରିପ୍ଟ ସବଷ୍ଟ୍ରିଙ୍ଗ୍ ପରି ୱର୍କସ୍, ତୁମେ ଏକ ଆର୍ଗୁମେଣ୍ଟ୍ ଭାବରେ ଷ୍ଟ୍ରିଙ୍ଗ୍ ପାସ୍ କର | ଉଦାହରଣ ସ୍ୱରୂପ, ସବଷ୍ଟ୍ରିଙ୍ଗ୍ ("ମୋ ପାଠ୍ୟ", 2, 4) "y t" ରିଟର୍ନ କରେ | substring-before ଅନ୍ୟ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ ପୂର୍ବରୁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗର ଅଂଶ ଫେରସ୍ତ କରେ | ଉଦାହରଣ ସ୍ୱରୂପ, ସବଷ୍ଟିଂ-ପୂର୍ବରୁ ("ମୋ ପାଠ୍ୟ", "") "ମୋ" ଫେରସ୍ତ କରେ | ସେହିଭଳି, ସବଷ୍ଟ୍ରିଙ୍ଗ୍-ପୂର୍ବରୁ ("ହାଏ", "ବାଇ") ଏକ ଖାଲି ଷ୍ଟ୍ରିଙ୍ଗ୍ ରିଟର୍ନ କରେ | substring-after ଅନ୍ୟ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ ପରେ ଏକ ଷ୍ଟ୍ରିଙ୍ଗର ଅଂଶ ଫେରସ୍ତ କରେ | ଉଦାହରଣ ସ୍ୱରୂପ, ସବଷ୍ଟିଂ-ପରେ ("ମୋ ଟେକ୍ସଟ୍", "") "ଟେକ୍ସଟ୍" ରିଟର୍ନ କରେ | ସେହିଭଳି, ସବଷ୍ଟ୍ରିଙ୍ଗ୍-ପରେ ("ହାଏ", "ବାଇ") ଏକ ଖାଲି ଷ୍ଟ୍ରିଙ୍ଗ୍ ରିଟର୍ନ କରେ | ନର୍ମାଲାଇଜ୍-ସ୍ପେସ୍ ଆର୍ଗୁମେଣ୍ଟ୍ ଷ୍ଟ୍ରିଙ୍ଗ୍କୁ ହ୍ ites ାଇଟସ୍ପେସ୍ ସହିତ ସ୍ normal ାଭାବିକ ଭାବରେ ହ୍ ites ାଇଟସ୍ପେସ୍କୁ ଛଡ଼ାଇ ଏବଂ ହ୍ ites ାଇଟସ୍ପେସ୍ ବର୍ଣ୍ଣଗୁଡିକର କ୍ରମକୁ ଗୋଟିଏ ସ୍ପେସ୍ ଦ୍ୱାରା ବଦଳାଇ ସ୍ normal ାଭାବିକ କରିଥାଏ | ଯଦି ଯୁକ୍ତି ମିଥ୍ୟା, ଅନ୍ୟଥା ମିଥ୍ୟା ତେବେ ଏକ ବୁଲିୟାନ୍ ସତ୍ୟକୁ ଫେରସ୍ତ କରେ ନାହିଁ | trueReturns boolean true। falseReturns ବୁଲିଅନ୍ ମିଥ୍ୟା | concat ଜାଭାସ୍କ୍ରିପ୍ଟ କନକାଟ ସହିତ ସମାନ ଜିନିଷ, ତୁମେ ଏହାକୁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗରେ ପଦ୍ଧତି ଭାବରେ ଚଲାଇବ ନାହିଁ | ଏହା ପରିବର୍ତ୍ତେ, ତୁମେ ଏକତ୍ର କରିବାକୁ ଚାହୁଁଥିବା ସମସ୍ତ ଷ୍ଟ୍ରିଙ୍ଗରେ ରଖ | string-length ଏହା ଜାଭାସ୍କ୍ରିପ୍ଟ ଷ୍ଟ୍ରିଙ୍ଗ-ଲମ୍ବ ସହିତ ସମାନ ନୁହେଁ, ବରଂ ଏକ ଆର୍ଗୁମେଣ୍ଟ ଭାବରେ ଦିଆଯାଇଥିବା ଷ୍ଟ୍ରିଙ୍ଗର ଲମ୍ବକୁ ଫେରସ୍ତ କରେ | ଅନୁବାଦ ଏହା ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ନେଇଥାଏ ଏବଂ ଦ୍ୱିତୀୟ ଆର୍ଗୁମେଣ୍ଟ୍ କୁ ତୃତୀୟ ଆର୍ଗୁମେଣ୍ଟ୍ ରେ ପରିବର୍ତ୍ତନ କରେ | ଉଦାହରଣ ସ୍ୱରୂପ, XYZdef କୁ ଅନୁବାଦ କରନ୍ତୁ ("abcdef", "abc", "XYZ") |
ଏହି ନିର୍ଦ୍ଦିଷ୍ଟ XPath କାର୍ଯ୍ୟଗୁଡ଼ିକ ବ୍ୟତୀତ, ସେଠାରେ ଅନେକଗୁଡ଼ିଏ କାର୍ଯ୍ୟ ଅଛି ଯାହାକି ସେମାନଙ୍କର ଜାଭାସ୍କ୍ରିପ୍ଟ ପ୍ରତିପକ୍ଷଙ୍କ ସହିତ ସମାନ ଭାବରେ କାର୍ଯ୍ୟ କରିଥାଏ - କିମ୍ବା ମୂଳତ any ଯେକ programming ଣସି ପ୍ରୋଗ୍ରାମିଂ ଭାଷାରେ ସହକର୍ମୀ - ଯାହା ଆପଣ ବୋଧହୁଏ ଉପଯୋଗୀ ମଧ୍ୟ ପାଇପାରିବେ, ଯେପରିକି ଚଟାଣ, ଛାତ, ଗୋଲାକାର, ରାଶି, ଇତ୍ୟାଦି | ନିମ୍ନଲିଖିତ ଡେମୋ ଏହି ପ୍ରତ୍ୟେକ କାର୍ଯ୍ୟକୁ ବର୍ଣ୍ଣନା କରେ: ବ୍ରାଇନ୍ ରାସମୁସେନଙ୍କ ଦ୍ୱାରା ପେନ୍ XPath ସାଂଖ୍ୟିକ କାର୍ଯ୍ୟଗୁଡ଼ିକ ଦେଖନ୍ତୁ | ଧ୍ୟାନ ଦିଅନ୍ତୁ ଯେ, ଅଧିକାଂଶ ଷ୍ଟ୍ରିଙ୍ଗ୍ ମନିପୁଲେସନ୍ ଫଙ୍କସନ୍ ପରି, ଅନେକ ସାଂଖ୍ୟିକଗୁଡ଼ିକ ଗୋଟିଏ ଇନପୁଟ୍ ନିଅନ୍ତି | ଏହା ଅବଶ୍ୟ, କାରଣ ଗତ XPath ଉଦାହରଣ ପରି ସେଗୁଡିକ ଜିଜ୍ଞାସା ପାଇଁ ବ୍ୟବହୃତ ହେବା ଉଚିତ: // li [ଚଟାଣ (ପାଠ୍ୟ ())> 250] / @ ଭାଲ୍ |
ଯଦି ଆପଣ ସେଗୁଡିକୁ ବ୍ୟବହାର କରନ୍ତି, ଅଧିକାଂଶ ଉଦାହରଣଗୁଡିକ ପରି, ଆପଣ ଏହାକୁ ପ୍ରଥମ ନୋଡରେ ପଥ ସହିତ ମେଳ ଖାଇ ଶେଷ କରିବେ | ସେଠାରେ ମଧ୍ୟ କିଛି ପ୍ରକାରର ରୂପାନ୍ତର କାର୍ଯ୍ୟ ଅଛି ଯାହାକୁ ଆପଣ ବୋଧହୁଏ ଏଡାଇବା ଉଚିତ କାରଣ ଜାଭାସ୍କ୍ରିପ୍ଟର ନିଜସ୍ୱ ପ୍ରକାରର ରୂପାନ୍ତର ସମସ୍ୟା ଅଛି | କିନ୍ତୁ ଏମିତି କିଛି ସମୟ ଆସିପାରେ ଯେତେବେଳେ ଆପଣ ଅନ୍ୟ ଏକ ନମ୍ବର ବିରୁଦ୍ଧରେ ଯାଞ୍ଚ କରିବା ପାଇଁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗକୁ ଏକ ନମ୍ବରରେ ରୂପାନ୍ତର କରିବାକୁ ଚାହୁଁଛନ୍ତି | କାର୍ଯ୍ୟଗୁଡ଼ିକ ଯାହାକି କିଛି ପ୍ରକାରର ସେଟ୍ କରେ ତାହା ହେଉଛି ବୁଲିଅନ୍, ସଂଖ୍ୟା, ଷ୍ଟ୍ରିଙ୍ଗ୍, ଏବଂ ନୋଡ୍ | ଏଗୁଡ଼ିକ ହେଉଛି ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ XPath ଡାଟାଟାଇପ୍ | ଏବଂ ଆପଣ ଯେପରି କଳ୍ପନା କରିପାରନ୍ତି, ଏହି କାର୍ଯ୍ୟଗୁଡ଼ିକ ମଧ୍ୟରୁ ଅଧିକାଂଶ ଡାଟାଟାଇପ୍ସରେ ବ୍ୟବହୃତ ହୋଇପାରେ ଯାହା DOM ନୋଡ୍ ନୁହେଁ | ଉଦାହରଣ ସ୍ .ରୁପ, ସବଷ୍ଟ୍ରିଙ୍ଗ୍-ପରେ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ନେଇଥାଏ ଯେପରି ଆମେ ପୂର୍ବରୁ ଆବୃତ କରିଛୁ, କିନ୍ତୁ ଏହା ଏକ href ଗୁଣରୁ ଷ୍ଟ୍ରିଙ୍ଗ୍ ହୋଇପାରେ | ଏହା କେବଳ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ହୋଇପାରେ:
const testSubstringAfter = document.queryXPaths ("substring-after ('ହେଲୋ ୱାର୍ଲ୍ଡ', '')");
ଆଜ୍ଞା ହଁ, ଏହି ଉଦାହରଣ ଆମକୁ ଫଳାଫଳ ଆରେକୁ [“ବିଶ୍ୱ”] ଭାବରେ ଫେରାଇବ | ଏହାକୁ କାର୍ଯ୍ୟରେ ଦେଖାଇବା ପାଇଁ, ମୁଁ DOM ନୋଡ୍ ନୁହେଁ ଜିନିଷଗୁଡିକ ବିରୁଦ୍ଧରେ ଫଙ୍କସନ୍ ବ୍ୟବହାର କରି ଏକ ଡେମୋ ପେଜ୍ ପ୍ରସ୍ତୁତ କରିଛି: ବ୍ରାଇନ୍ ରାସମୁସେନ୍ ଙ୍କ ଦ୍ୱାରା ପେନ୍ ଜିଜ୍ଞାସା ପଥ [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ | ତୁମେ ଅନୁବାଦ କାର୍ଯ୍ୟର ଆଶ୍ଚର୍ଯ୍ୟଜନକ ଦିଗକୁ ଧ୍ୟାନ ଦେବା ଉଚିତ, ଯାହା ହେଉଛି ଯଦି ତୁମର ଦ୍ୱିତୀୟ ଯୁକ୍ତିରେ ଏକ ଚରିତ୍ର ଅଛି (ଯଥା, ତୁମେ ଅନୁବାଦ କରିବାକୁ ଚାହୁଁଥିବା ଅକ୍ଷର ତାଲିକା) ଏବଂ ଅନୁବାଦ କରିବାକୁ କ match ଣସି ମେଳ ଖାଉଥିବା ଚରିତ୍ର, ସେହି ଚରିତ୍ରଟି ଆଉଟପୁଟରୁ ଅପସାରିତ ହୁଏ | ଏହିପରି, ଏହା:
ଅନୁବାଦ କର '
ସ୍ପେସ୍ ସହିତ ଷ୍ଟ୍ରିଙ୍ଗରେ ଫଳାଫଳ: ["* * **"]
ଏହାର ଅର୍ଥ ହେଉଛି ଯେ “a” ଅକ୍ଷରଟି ଏକ ଆଷ୍ଟେରିସ୍କ (*) କୁ ଅନୁବାଦ କରାଯାଉଛି, କିନ୍ତୁ ଟାର୍ଗେଟ୍ ଷ୍ଟ୍ରିଙ୍ଗକୁ ଦିଆଯାଇଥିବା ଅନ୍ୟ କ character ଣସି ଚରିତ୍ରର ଅନୁବାଦ ନାହିଁ | ହ୍ ites ାଇଟସ୍ପେସ୍ ଆମେ ଛାଡିଛୁ |ଅନୁବାଦିତ “a” ଅକ୍ଷର ମଧ୍ୟରେ | ତା’ପରେ ପୁଣି, ଏହି ପ୍ରଶ୍ନ:
ଅନୁବାଦ କର '
… କ problem ଣସି ଅସୁବିଧା ନାହିଁ ଏବଂ ଏହିପରି ଏକ ଫଳାଫଳକୁ ଫଳାଫଳ କରେ:
"***** ** **** ** ***** ******* *** ****** ** ****** ******* ** ***"
ଏହା ଆପଣଙ୍କୁ ଆଘାତ ଦେଇପାରେ ଯେ XPath ଅନୁବାଦ ଫଙ୍କସନ୍ ଯାହା କରେ ତାହା କରିବା ପାଇଁ ଜାଭାସ୍କ୍ରିପ୍ଟରେ କ easy ଣସି ସହଜ ଉପାୟ ନାହିଁ, ଯଦିଓ ଅନେକ ବ୍ୟବହାର ମାମଲା ପାଇଁ, ନିୟମିତ ଏକ୍ସପ୍ରେସନ୍ସ ସହିତ ଏହାକୁ ବଦଳାନ୍ତୁ | ମୁଁ ଦେଖାଇଥିବା ସମାନ ପଦ୍ଧତିକୁ ଆପଣ ବ୍ୟବହାର କରିପାରିବେ, କିନ୍ତୁ ତାହା ସବପଟିମାଲ୍ ଯଦି ଆପଣ ଚାହୁଁଛନ୍ତି ଷ୍ଟ୍ରିଙ୍ଗଗୁଡ଼ିକୁ ଅନୁବାଦ କରିବା | ଜାଭାସ୍କ୍ରିପ୍ଟ ସଂସ୍କରଣ ପ୍ରଦାନ କରିବାକୁ ନିମ୍ନଲିଖିତ ଡେମୋ XPath ର ଅନୁବାଦ କାର୍ଯ୍ୟକୁ ଗୁଡ଼ାଇ ଦିଏ: ବ୍ରାଇନ୍ ରସମୁସେନଙ୍କ ଦ୍ୱାରା ପେନ୍ ଅନୁବାଦ କାର୍ଯ୍ୟ [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ | ଆପଣ ଏହିପରି କିଛି ବ୍ୟବହାର କରିପାରିବେ କେଉଁଠାରେ? ଏକ ତିନି-ସ୍ଥାନ ଅଫସେଟ୍ ସହିତ କେସର ସାଇଫର୍ ଏନକ୍ରିପସନ୍ କୁ ବିଚାର କରନ୍ତୁ (ଯଥା, 48 B.C. ରୁ ଟପ୍-ଅଫ୍-ଲାଇନ୍ ଏନକ୍ରିପସନ୍):
ଅନୁବାଦ କରନ୍ତୁ ("କେସର ରୁବିକନ୍ ଅତିକ୍ରମ କରିବାକୁ ଯୋଜନା କରୁଛନ୍ତି!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")
ଇନପୁଟ୍ ପାଠ୍ୟ “କେସର ରୁବିକନ୍ ଅତିକ୍ରମ କରିବାକୁ ଯୋଜନା କରୁଛି!” ଫଳାଫଳ “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” ବିଭିନ୍ନ ସମ୍ଭାବ୍ୟତାର ଅନ୍ୟ ଏକ ଶୀଘ୍ର ଉଦାହରଣ ଦେବାକୁ, ମୁଁ ଏକ ଧାତୁ ଫଙ୍କସନ୍ ତିଆରି କଲି ଯାହା ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ଇନପୁଟ୍ ନେଇଥାଏ ଏବଂ ପାଠ୍ୟକୁ ଫେରାଇବା ପାଇଁ ଏକ ଅନୁବାଦ ଫଙ୍କସନ୍ ବ୍ୟବହାର କରେ, ଯେଉଁଥିରେ ଅମଲାଟ୍ ନେଇଥାଏ | ବ୍ରାଇନ୍ ରସମୁସେନଙ୍କ ଦ୍ୱାରା ପେନ୍ ଧାତୁ କାର୍ଯ୍ୟ [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ |
const ଧାତୁ = (str) => {| ଫେରସ୍ତ ଅନୁବାଦ (str, "AOUaou", "ÄÖÜäöü"); }
ଏବଂ, ଯଦି “ମୋଟଲି କ୍ରୁ ନିୟମ, ଡୁଡସ୍ ଉପରେ ପଥର!” ଲେଖା ଦିଆଯାଏ, “Mötley Crüe rüles, röck ön düdes!” ଫେରସ୍ତ କରେ | ଆଜ୍ଞା ହଁ, ଏହି କାର୍ଯ୍ୟର ସମସ୍ତ ପ୍ରକାରର ପାରୋଡି ବ୍ୟବହାର ଥାଇପାରେ | ଯଦି ତାହା ତୁମେ, ତେବେ ଏହି TVTropes ପ୍ରବନ୍ଧ ଆପଣଙ୍କୁ ପ୍ରଚୁର ପ୍ରେରଣା ଯୋଗାଇବା ଉଚିତ୍ | XPath ସହିତ CSS ବ୍ୟବହାର କରିବା | XPath ସହିତ CSS ଚୟନକର୍ତ୍ତା ବ୍ୟବହାର କରିବାର ଆମର ମୁଖ୍ୟ କାରଣ ମନେରଖ: CSS ଏକ ଶ୍ରେଣୀ କ’ଣ ତାହା ବହୁତ ଭଲ ଭାବରେ ବୁ s ିଥାଏ, ଯେତେବେଳେ କି XPath ସହିତ ଆପଣ ସର୍ବୋତ୍ତମ କରିପାରିବେ ଶ୍ରେଣୀ ଗୁଣର ଷ୍ଟ୍ରିଙ୍ଗ୍ ତୁଳନାତ୍ମକ | ତାହା ଅଧିକାଂଶ କ୍ଷେତ୍ରରେ କାମ କରିବ | କିନ୍ତୁ ଯଦି ତୁମେ କେବେ ଏକ ପରିସ୍ଥିତିକୁ ଦ run ଡିବାକୁ ପଡିବ, କୁହ, କେହି ଜଣେ .primaryLinks ଏବଂ .primaryLinks2 ନାମକ ଶ୍ରେଣୀ ସୃଷ୍ଟି କରିଥିଲେ ଏବଂ ତୁମେ .primaryLinks ଶ୍ରେଣୀ ପାଇବା ପାଇଁ XPath ବ୍ୟବହାର କରୁଥିଲ, ତେବେ ତୁମେ ସମ୍ଭବତ problems ସମସ୍ୟାର ସମ୍ମୁଖୀନ ହେବ | ଯେପର୍ଯ୍ୟନ୍ତ ସେପରି କିଛି ନିର୍ବୋଧତା ନାହିଁ, ଆପଣ ବୋଧହୁଏ XPath ବ୍ୟବହାର କରିବେ | କିନ୍ତୁ ମୁଁ ରିପୋର୍ଟ କରିବାକୁ ଦୁ sad ଖିତ ଯେ ମୁଁ ସେହି ସ୍ଥାନରେ କାମ କରିଛି ଯେଉଁଠାରେ ଲୋକମାନେ ସେହି ପ୍ରକାରର ମୂର୍ଖ କାର୍ଯ୍ୟ କରନ୍ତି | CSS ଏବଂ XPath କୁ ଏକାଠି ବ୍ୟବହାର କରି ଏଠାରେ ଆଉ ଏକ ଡେମୋ | ଏହା ଦର୍ଶାଏ ଯେ ଯେତେବେଳେ ଆମେ ଏକ ପ୍ରସଙ୍ଗ ନୋଡରେ ଏକ XPath ଚଲାଇବା ପାଇଁ କୋଡ୍ ବ୍ୟବହାର କରୁ, ଯାହା ଡକ୍ୟୁମେଣ୍ଟ୍ ନୋଡ୍ ନୁହେଁ | ବ୍ରାଇନ୍ ରସମୁସେନଙ୍କ ଦ୍ୱାରା ପେନ୍ css ଏବଂ xpath ଏକତ୍ର [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ | CSS ଜିଜ୍ଞାସା ହେଉଛି .relatedarticles a, ଯାହା ଏକ .relatedarticles ଶ୍ରେଣୀ ନ୍ୟସ୍ତ ହୋଇଥିବା ଏକ ଡିଭରେ ଦୁଇଟି ଉପାଦାନ ଆଣିଥାଏ | ଏହା ପରେ ତିନୋଟି “ଖରାପ” ଜିଜ୍ଞାସା, ଅର୍ଥାତ୍, ଜିଜ୍ଞାସା ଯାହା ପ୍ରସଙ୍ଗ ନୋଡ୍ ଭାବରେ ଏହି ଉପାଦାନଗୁଡ଼ିକ ସହିତ ଚାଲିବାବେଳେ ଆମେ ଯାହା କରିବାକୁ ଚାହିଁଥାଉ ତାହା କରନ୍ତି ନାହିଁ | ମୁଁ ଆଶାକରୁଛି ସେମାନେ କାହିଁକି ଭିନ୍ନ ଆଚରଣ କରୁଛନ୍ତି? ପ୍ରଶ୍ନର ତିନୋଟି ଖରାପ ପ୍ରଶ୍ନଗୁଡ଼ିକ ହେଉଛି:
// text (): ଡକ୍ୟୁମେଣ୍ଟ୍ ରେ ଥିବା ସମସ୍ତ ଟେକ୍ସଟ୍ ରିଟର୍ନ କରେ | // a / text (): ଡକ୍ୟୁମେଣ୍ଟ୍ ରେ ଥିବା ଲିଙ୍କ୍ ଭିତରେ ଥିବା ସମସ୍ତ ଟେକ୍ସଟ୍ ରିଟର୍ନ କରେ | ./a/text (): କ results ଣସି ଫଳାଫଳ ଫେରସ୍ତ କରେ ନାହିଁ |
ଏହି ଫଳାଫଳଗୁଡିକର କାରଣ ହେଉଛି ଯେ ଯେତେବେଳେ ଆପଣଙ୍କର ପ୍ରସଙ୍ଗ ହେଉଛି CSS ଜିଜ୍ଞାସାରୁ ଫେରିଥିବା ଏକ ଉପାଦାନ, // ପୁରା ଡକ୍ୟୁମେଣ୍ଟ ବିରୁଦ୍ଧରେ ଯାଏ | ଏହା ହେଉଛି XPath ର ଶକ୍ତି; CSS ଏକ ନୋଡରୁ ଏକ ପିତୃପୁରୁଷଙ୍କ ପର୍ଯ୍ୟନ୍ତ ଏବଂ ତା’ପରେ ସେହି ପିତୃପୁରୁଷଙ୍କ ଭାଇକୁ ଯାଇପାରିବ ନାହିଁ ଏବଂ ସେହି ଭାଇଭଉଣୀଙ୍କ ବଂଶଧରଙ୍କ ନିକଟକୁ ଯାଇପାରିବ ନାହିଁ | କିନ୍ତୁ XPath କରିପାରିବ | ଏହି ସମୟରେ, ./ ସାମ୍ପ୍ରତିକ ନୋଡର ପିଲାମାନଙ୍କୁ ପ୍ରଶ୍ନ କରେ, ଯେଉଁଠାରେ ଡଟ୍ (।) ସାମ୍ପ୍ରତିକ ନୋଡକୁ ପ୍ରତିନିଧିତ୍ୱ କରେ, ଏବଂ ଫରୱାର୍ଡ ସ୍ଲାଶ୍ (/) କିଛି ଶିଶୁ ନୋଡକୁ ଯିବାକୁ ପ୍ରତିନିଧିତ୍ୱ କରେ - ଏହା ଏକ ଗୁଣ, ଉପାଦାନ, କିମ୍ବା ପାଠ୍ୟ ରାସ୍ତାର ପରବର୍ତ୍ତୀ ଅଂଶ ଦ୍ୱାରା ନିର୍ଣ୍ଣୟ କରାଯାଏ | କିନ୍ତୁ କ child ଣସି ପିଲା CSS ଜିଜ୍ଞାସା ଦ୍ୱାରା ମନୋନୀତ ଏକ ଉପାଦାନ ନାହିଁ, ଏହିପରି ଜିଜ୍ଞାସା ମଧ୍ୟ କିଛି ଫେରସ୍ତ କରେ ନାହିଁ | ସେହି ଶେଷ ଡେମୋରେ ତିନୋଟି ଭଲ ପ୍ରଶ୍ନ ଅଛି:
.// ପାଠ (), ./text (), normalize-space (./ text ()) |
ନର୍ମାଲାଇଜ୍-ସ୍ପେସ୍ ଜିଜ୍ଞାସା XPath ଫଙ୍କସନ୍ ବ୍ୟବହାର ପ୍ରଦର୍ଶନ କରେ, କିନ୍ତୁ ଅନ୍ୟ ପ୍ରଶ୍ନଗୁଡ଼ିକରେ ଅନ୍ତର୍ଭୁକ୍ତ ଏକ ସମସ୍ୟାକୁ ମଧ୍ୟ ସମାଧାନ କରେ | HTML ଏହିପରି ଗଠନ ହୋଇଛି:
ସେଲେନିୟମ୍ ୱେବ୍ ଡ୍ରାଇଭର ସହିତ ଆପଣଙ୍କର ବ Feat ଶିଷ୍ଟ୍ୟ ପରୀକ୍ଷାକୁ ସ୍ୱୟଂଚାଳିତ କରିବା |
ଜିଜ୍ଞାସା ପାଠ୍ୟ ନୋଡର ଆରମ୍ଭ ଏବଂ ଶେଷରେ ଏକ ରେଖା ଫିଡ୍ ଫେରସ୍ତ କରେ,ଏବଂ ନର୍ମାଲାଇଜ୍-ସ୍ପେସ୍ ଏହାକୁ ଅପସାରଣ କରେ | ଯେକ any ଣସି XPath ଫଙ୍କସନ୍ ବ୍ୟବହାର କରିବା ଯାହାକି ଏକ ଇନପୁଟ୍ XPath ସହିତ ବୁଲିୟନ୍ ବ୍ୟତୀତ ଅନ୍ୟ କିଛି ଫେରସ୍ତ କରେ ଅନ୍ୟ କାର୍ଯ୍ୟଗୁଡ଼ିକ ପାଇଁ ପ୍ରଯୁଜ୍ୟ | ନିମ୍ନଲିଖିତ ଡେମୋ ଅନେକ ଉଦାହରଣ ଦେଖାଏ: ବ୍ରାଇନ୍ ରାସମୁସେନ୍ ଙ୍କ ଦ୍ୱାରା ପେନ୍ xpath ଫଙ୍କସନ୍ ଉଦାହରଣଗୁଡିକ ଦେଖନ୍ତୁ | ପ୍ରଥମ ଉଦାହରଣ ଏକ ସମସ୍ୟା ଦେଖାଏ ଯାହାକୁ ଆପଣ ଧ୍ୟାନ ଦେବା ଉଚିତ୍ | ନିର୍ଦ୍ଦିଷ୍ଟ ଭାବରେ, ନିମ୍ନଲିଖିତ କୋଡ୍:
document.queryXPaths ("substring-after (// a / @ href, 'https: //')");
… ଗୋଟିଏ ଷ୍ଟ୍ରିଙ୍ଗ୍ ରିଟର୍ନ କରେ:
"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"
ଏହାର ଅର୍ଥ ହେଉଛି, ଠିକ୍? ଏହି କାର୍ଯ୍ୟଗୁଡ଼ିକ ଆରେ ଫେରସ୍ତ କରେ ନାହିଁ ବରଂ ଏକକ ଷ୍ଟ୍ରିଙ୍ଗ୍ କିମ୍ବା ଏକକ ସଂଖ୍ୟା | ଏକାଧିକ ଫଳାଫଳ ସହିତ ଯେକ anywhere ଣସି ସ୍ଥାନରେ ଫଙ୍କସନ୍ ଚଲାଇବା କେବଳ ପ୍ରଥମ ଫଳାଫଳ ଫେରସ୍ତ କରେ | ଦ୍ୱିତୀୟ ଫଳାଫଳ ଦର୍ଶାଏ ଯେ ଆମେ ପ୍ରକୃତରେ କଣ ଚାହୁଁ:
document.queryCSSSelectors ("a") .queryXPaths ("substring-after (./@href,'https:// ')");
ଯାହା ଦୁଇଟି ଷ୍ଟ୍ରିଙ୍ଗର ଏକ ଆରେ ରିଟର୍ନ କରେ:
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-result-improve-accessibility/"]
ଜାଭାସ୍କ୍ରିପ୍ଟରେ ଥିବା ଫଙ୍କସନ୍ ପରି XPath ଫଙ୍କସନ୍ ଗୁଡିକ ନଷ୍ଟ ହୋଇପାରେ | ତେଣୁ, ଯଦି ଆମେ ସ୍ମାଶିଙ୍ଗ୍ ମ୍ୟାଗେଜିନ୍ର URL ଗଠନ ଜାଣୁ, ଆମେ ନିମ୍ନଲିଖିତ କାର୍ଯ୍ୟ କରିପାରିବା (ଟେମ୍ପଲେଟ୍ ଆକ୍ଷରିକ ବ୍ୟବହାର କରିବା ସୁପାରିଶ କରାଯାଏ): `ଅନୁବାଦ ( ସବଷ୍ଟ୍ରିଙ୍ଗ୍ ( substring-after (./@ href, ‘www.smashingmagazine.com/ ') , 9), '/', '') `
ଏହା ଟିକିଏ ଅତ୍ୟଧିକ ଜଟିଳ ହେବାରେ ଲାଗିଛି ଯେ ଏହା କ’ଣ କରେ ତାହା ବର୍ଣ୍ଣନା କରୁଥିବା ମନ୍ତବ୍ୟଗୁଡିକ ଆବଶ୍ୟକ କରେ: www.smashingmagazine.com/ ପରେ href ଗୁଣରୁ ସମସ୍ତ URL ନିଅ, ପ୍ରଥମ ନଅଟି ଅକ୍ଷର ଅପସାରଣ କର, ତାପରେ ଫରୱାର୍ଡ ସ୍ଲାସ୍ (/) ବର୍ଣ୍ଣକୁ କିଛି ଅନୁବାଦ କର, ଯାହାଫଳରେ ଶେଷ ଫରୱାର୍ଡ ସ୍ଲାଶରୁ ମୁକ୍ତି ପାଇବ | ଫଳାଫଳ ଆରେ:
["ବ feature ଶିଷ୍ଟ୍ୟ-ପରୀକ୍ଷଣ-ସେଲେନିୟମ୍-ୱେବ୍ ଡ୍ରାଇଭର", "ସ୍ୱୟଂଚାଳିତ-ପରୀକ୍ଷା-ଫଳାଫଳ-ଉନ୍ନତି-ଅଭିଗମ୍ୟତା"]
ଅଧିକ XPath ବ୍ୟବହାର ମାମଲା | ପରୀକ୍ଷଣରେ XPath ପ୍ରକୃତରେ ଉଜ୍ଜ୍ୱଳ ହୋଇପାରେ | ଏହାର କାରଣ ଦେଖିବା କଷ୍ଟସାଧ୍ୟ ନୁହେଁ, ଯେହେତୁ XPath DOM ର ପ୍ରତ୍ୟେକ ଉପାଦାନ ପାଇବା ପାଇଁ ବ୍ୟବହୃତ ହୋଇପାରେ, DOM ର ଯେକ position ଣସି ସ୍ଥିତିରୁ, ଯେତେବେଳେ CSS କରିପାରିବ ନାହିଁ | ଅନେକ ଆଧୁନିକ ବିଲ୍ଡ ସିଷ୍ଟମରେ ସ୍ଥିର ରହିଥିବା CSS ଶ୍ରେଣୀଗୁଡିକ ଉପରେ ଆପଣ ଭରସା କରିପାରିବେ ନାହିଁ, କିନ୍ତୁ XPath ସହିତ, ଏକ DOM ସଂରଚନାକୁ ଖାତିର ନକରି ଏକ ଉପାଦାନର ପାଠ୍ୟ ବିଷୟବସ୍ତୁ କ’ଣ ତାହା ଉପରେ ଆମେ ଅଧିକ ଦୃ ust ମେଳ କରିବାକୁ ସକ୍ଷମ ଅଟୁ | କ techni ଶଳ ଉପରେ ଗବେଷଣା ହୋଇଛି ଯାହା ଆପଣଙ୍କୁ ସ୍ଥିର XPath ପରୀକ୍ଷା କରିବାକୁ ଅନୁମତି ଦିଏ | ପରୀକ୍ଷଣ ଫ୍ଲେକ୍ ଆଉଟ୍ ହେବା ଏବଂ ବିଫଳ ହେବା ଠାରୁ କିଛି ଖରାପ ନୁହେଁ କାରଣ କେବଳ CSS ଚୟନକର୍ତ୍ତା ଆଉ କାମ କରନ୍ତି ନାହିଁ କାରଣ କିଛି ନାମ ପରିବର୍ତ୍ତନ କିମ୍ବା ଅପସାରଣ କରାଯାଇଛି | ଏକାଧିକ ଲୋକେଟର ନିର୍ବାହରେ XPath ମଧ୍ୟ ବହୁତ ଭଲ | ଏକ ଉପାଦାନ ସହିତ ମେଳ ହେବା ପାଇଁ XPath ଜିଜ୍ଞାସା ବ୍ୟବହାର କରିବାର ଏକରୁ ଅଧିକ ଉପାୟ ଅଛି | CSS ସହିତ ମଧ୍ୟ ସମାନ | କିନ୍ତୁ XPath ଜିଜ୍ଞାସାଗୁଡିକ ଅଧିକ ଟାର୍ଗେଟେଡ୍ ଉପାୟରେ ଜିନିଷଗୁଡିକରେ ଡ୍ରିଲ୍ କରିପାରିବ ଯାହା ଯାହା ଫେରସ୍ତ ପାଇବ ତାହା ସୀମିତ କରେ, ଯାହା ଆପଣଙ୍କୁ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ମ୍ୟାଚ୍ ଖୋଜିବାକୁ ଅନୁମତି ଦେବ ଯେଉଁଠାରେ ଅନେକ ସମ୍ଭାବ୍ୟ ମେଳ ହୋଇପାରେ | ଉଦାହରଣ ସ୍ .ରୁପ, ଆମେ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ h2 ଉପାଦାନକୁ ଫେରାଇବା ପାଇଁ XPath ବ୍ୟବହାର କରିପାରିବା ଯାହା ଏକ ଡିଭ୍ ଭିତରେ ରହିଥାଏ ଯାହା ତୁରନ୍ତ ଏକ ଭାଇଭାଇନ୍ ଡିଭ୍ ଅନୁସରଣ କରେ ଯାହା ପ୍ରତିବଦଳରେ ଏକ ଡାଟା-ଟେଷ୍ଟିଡ୍ = "ଲିଡର୍" ଆଟ୍ରିବ୍ୟୁଟ୍ ସହିତ ଏକ ଶିଶୁ ପ୍ରତିଛବି ଉପାଦାନ ଧାରଣ କରିଥାଏ:
ଏହି ହେଡଲାଇନ୍
ପ୍ରାପ୍ତ କରନ୍ତୁ ନାହିଁ |ଏହି ହେଡଲାଇନ୍ ମଧ୍ୟ
ପ୍ରାପ୍ତ କରନ୍ତୁ ନାହିଁ |ନେତାଙ୍କ ପ୍ରତିଛବି ପାଇଁ ହେଡର୍ h2> |
|
ଏହା ହେଉଛି ପ୍ରଶ୍ନ: document.queryXPaths (` // div [ ନିମ୍ନଲିଖିତ ଭାଇଭଉଣୀ :: div [1] / img [@ data-testID = 'ନେତା'] ] / h2 / ପାଠ () `);
ସମସ୍ତେ କିପରି ଏକାଠି ହୁଅନ୍ତି ଦେଖିବା ପାଇଁ ଏକ ଡେମୋରେ ପଡ଼ିବା: ବ୍ରାଇନ୍ ରସମୁସେନଙ୍କ ଦ୍ୱାରା ପେନ୍ କମ୍ପ୍ଲେକ୍ସ H2 ଜିଜ୍ଞାସା [ଫଙ୍କଡ୍] ଦେଖନ୍ତୁ | ତେଣୁ, ହଁ | XPath ବ୍ୟବହାର କରି ଏକ ପରୀକ୍ଷଣରେ ଯେକ element ଣସି ଉପାଦାନ ପାଇଁ ଅନେକ ସମ୍ଭାବ୍ୟ ପଥ ଅଛି | XSLT 1.0 ଅବନତି | ମୁଁ ପ୍ରାରମ୍ଭରେ ଉଲ୍ଲେଖ କରିଛି ଯେ ବ୍ରାଉଜରରୁ XSLT 1.0 ସମର୍ଥନ ହଟାଇବାକୁ କ୍ରୋମ ଦଳ ଯୋଜନା କରିଛି | ଏହା ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ କାରଣ XSLT 1.0 ଡକ୍ୟୁମେଣ୍ଟ୍ ଟ୍ରାନ୍ସଫର୍ମେସନ୍ ପାଇଁ XML- ଫୋକସ୍ ପ୍ରୋଗ୍ରାମିଂ ବ୍ୟବହାର କରେ ଯାହା ପରବର୍ତ୍ତୀ ସମୟରେ XPath 1.0 ଉପରେ ନିର୍ଭର କରେ, ଯାହା ଅଧିକାଂଶ ବ୍ରାଉଜର୍ରେ ମିଳିଥାଏ | ଯେତେବେଳେ ଏହା ଘଟେ, ଆମେ XPath ର ଏକ ମୁଖ୍ୟ ଉପାଦାନ ହରାଇବୁ | କିନ୍ତୁ ପରୀକ୍ଷଣ ଲେଖିବା ପାଇଁ XPath ବାସ୍ତବରେ ବହୁତ ଭଲ, ମୁଁ ଏହା ସମ୍ଭବ ନୁହେଁ ଯେ ସମ୍ପୁର୍ଣ୍ଣ ଭାବରେ XPath ଶୀଘ୍ର ଅଦୃଶ୍ୟ ହୋଇଯିବ | ଏହା କହିଲା, ମୁଁ ଲକ୍ଷ୍ୟ କରିଛି ଯେ ଲୋକମାନେ ଏକ ବ feature ଶିଷ୍ଟ୍ୟ ପ୍ରତି ଆଗ୍ରହ ପ୍ରକାଶ କରନ୍ତି | ଏବଂ XSLT 1.0 ନାପସନ୍ଦ କ୍ଷେତ୍ରରେ ଏହା ନିଶ୍ଚିତ ଭାବରେ ସତ ଅଟେ | ହ୍ୟାକର୍ ନ୍ୟୁଜ୍ ରେ ଏକ ସମ୍ପୂର୍ଣ୍ଣ ଆଲୋଚନା ଘଟୁଛି ଯାହା ଅବହେଳା ବିରୁଦ୍ଧରେ ଯୁକ୍ତିରେ ପରିପୂର୍ଣ୍ଣ | ପୋଷ୍ଟ ନିଜେ XSLT ସହିତ ଏକ ବ୍ଲଗିଂ framework ାଞ୍ଚା ସୃଷ୍ଟି କରିବାର ଏକ ଉତ୍ତମ ଉଦାହରଣ | ତୁମେନିଜ ପାଇଁ ଆଲୋଚନା ପ read ିପାରେ, କିନ୍ତୁ ଏହା ଜାଭାସ୍କ୍ରିପ୍ଟ କିପରି XLST ପାଇଁ ସେହି ପ୍ରକାରର ମାମଲା ପରିଚାଳନା କରିବା ପାଇଁ ଶିମ୍ ଭାବରେ ବ୍ୟବହୃତ ହୋଇପାରେ | ମୁଁ ମଧ୍ୟ ପରାମର୍ଶ ଦେଖିଛି ଯେ ବ୍ରାଉଜର୍ମାନେ ସାକ୍ସନ୍ ଜେଏସ୍ ବ୍ୟବହାର କରିବା ଉଚିତ, ଯାହା ଜାଭାସ୍କ୍ରିପ୍ଟର ସାକ୍ସନ୍ XSLT, XQUERY, ଏବଂ XPath ଇଞ୍ଜିନ୍ ପାଇଁ ଏକ ପୋର୍ଟ ଅଟେ | ତାହା ଏକ ମଜାଦାର ଧାରଣା, ବିଶେଷତ as ସାକ୍ସନ୍- JS ଏହି ନିର୍ଦ୍ଦିଷ୍ଟକରଣର ସାମ୍ପ୍ରତିକ ସଂସ୍କରଣକୁ କାର୍ଯ୍ୟକାରୀ କରେ, ଯେଉଁଠାରେ କ browser ଣସି ବ୍ରାଉଜର୍ ନାହିଁ ଯାହାକି XPath କିମ୍ବା XSLT ର କ version ଣସି ସଂସ୍କରଣକୁ 1.0 ରୁ ଅଧିକ କାର୍ଯ୍ୟକାରୀ କରେ, ଏବଂ XQuery କୁ କାର୍ଯ୍ୟକାରୀ କରେ ନାହିଁ | ମୁଁ ସାକ୍ସୋନିକା ଠାରେ ଥିବା ନର୍ମ ଟୋଭି-ୱାଲ୍ସ, ସାକ୍ସନ୍ ଜେଏସ୍ ପଛରେ ଥିବା କମ୍ପାନୀ ଏବଂ ସାକ୍ସନ୍ ଇଞ୍ଜିନର ଅନ୍ୟାନ୍ୟ ସଂସ୍କରଣରେ ପହଞ୍ଚିଲି | ସେ କହିଛନ୍ତି: “ଯଦି କ any ଣସି ବ୍ରାଉଜର ବିକ୍ରେତା ଆଧୁନିକ XML ଟେକ୍ନୋଲୋଜିକୁ ବ୍ରାଉଜରରେ ଏକୀଭୂତ କରିବା ପାଇଁ ସାକ୍ସନ୍ JS କୁ ଆରମ୍ଭ କରିବା ପାଇଁ ଆଗ୍ରହୀ, ତେବେ ଆମେ ସେମାନଙ୍କ ସହ ଆଲୋଚନା କରି ଆନନ୍ଦିତ ହେବୁ।” - ନର୍ମ ଟୋଭି-ୱାଲଶ
କିନ୍ତୁ ଆହୁରି ମଧ୍ୟ ଯୋଗ କରାଯାଇଛି: "ମୁଁ ବହୁତ ଆଶ୍ଚର୍ଯ୍ୟ ହେବି ଯଦି କେହି ଭାବିଥିଲେ ଯେ ସାକ୍ସନ୍ ଜେଏସ୍ କୁ ଏହାର ସାମ୍ପ୍ରତିକ ରୂପରେ ଗ୍ରହଣ କରିବା ଏବଂ ଏହାକୁ ବ୍ରାଉଜର୍ରେ ଅପରିବର୍ତ୍ତିତ ଭାବରେ ପକାଇବା ଏକ ଆଦର୍ଶ ପନ୍ଥା ହେବ। ବ୍ରାଉଜର୍ ବିକ୍ରେତା, ପ୍ରକୃତରେ ସେମାନେ ବ୍ରାଉଜର୍ ନିର୍ମାଣ କରନ୍ତି, ଯାହା ଆମେ“ ବାହ୍ୟ ”ଠାରୁ ଅଧିକ ଗଭୀର ସ୍ତରରେ ଏକୀକରଣ ନିକଟକୁ ଯାଇପାରିବା |” - ନର୍ମ ଟୋଭି-ୱାଲଶ |
ସୂଚନାଯୋଗ୍ୟ ଯେ ଟୋଭି-ୱାଲଶଙ୍କ ମନ୍ତବ୍ୟ XSLT ଅବନତି ଘୋଷଣାର ପ୍ରାୟ ଏକ ସପ୍ତାହ ପୂର୍ବରୁ ଆସିଥିଲା | ସିଦ୍ଧାନ୍ତ ମୁଁ ଆଗକୁ ଯାଇପାରେ | କିନ୍ତୁ ମୁଁ ଆଶା କରେ ଏହା XPath ର ଶକ୍ତି ପ୍ରଦର୍ଶନ କରିଛି ଏବଂ ମହତ୍ ଜିନିଷ ହାସଲ କରିବା ପାଇଁ ଏହାକୁ କିପରି ବ୍ୟବହାର କରାଯିବ ତାହା ଦର୍ଶାଇ ଆପଣଙ୍କୁ ଅନେକ ଉଦାହରଣ ଦେଇଛି | ବ୍ରାଉଜର୍ ଷ୍ଟାକରେ ଏହା ପୁରାତନ ଟେକ୍ନୋଲୋଜିର ଏକ ପ୍ରକୃଷ୍ଟ ଉଦାହରଣ ଯାହାକି ଆଜି ମଧ୍ୟ ପ୍ରଚୁର ଉପଯୋଗୀତା ଅଛି, ଯଦିଓ ଆପଣ ଏହା ଜାଣି ନାହାଁନ୍ତି ଏହା ବିଦ୍ୟମାନ ଅଛି କିମ୍ବା ଏହା ପହଞ୍ଚିବା ପାଇଁ କେବେ ଭାବି ନାହାଁନ୍ତି | ପରବର୍ତ୍ତୀ ପଠନ |
ମାରୁନ୍ ଆଲି, ୟୋସେଫ୍ ବାକୁନି, ନାଡର୍ ଜାଲୁଲ୍ ଏବଂ ରିମା କିଲାନିଙ୍କ ଦ୍ୱାରା “ପ୍ରାକୃତିକ ଭାଷା ସହିତ ସ୍ୱୟଂଚାଳିତ ୱେବ୍ ପରୀକ୍ଷଣର ସ୍ଥାଣୁତା ବୃଦ୍ଧି” (ACM ଡିଜିଟାଲ୍ ଲାଇବ୍ରେରୀ) ଏହି ପ୍ରବନ୍ଧ ସ୍ଥିର ପରୀକ୍ଷଣ ଲେଖିବା ପାଇଁ ଅନେକ XPath ଉଦାହରଣ ପ୍ରଦାନ କରିଥାଏ | XPath (MDN) ଆରମ୍ଭ କରିବା ପାଇଁ ଏହା ଏକ ଉତ୍କୃଷ୍ଟ ସ୍ଥାନ ଯଦି ଆପଣ XPath କିପରି କାର୍ଯ୍ୟ କରେ ତାହାର ଏକ ବ technical ଷୟିକ ବ୍ୟାଖ୍ୟା ଚାହୁଁଛନ୍ତି | XPath ଟ୍ୟୁଟୋରିଆଲ୍ (ZVON) ମୁଁ ଏହି ଟ୍ୟୁଟୋରିଆଲ୍ କୁ ମୋ ନିଜ ଶିକ୍ଷଣରେ ସବୁଠାରୁ ସାହାଯ୍ୟକାରୀ ବୋଲି ପାଇଲି, ଅନେକ ଉଦାହରଣ ଏବଂ ସ୍ପଷ୍ଟ ବର୍ଣ୍ଣନା ଯୋଗୁଁ | XPather ଏହି ଇଣ୍ଟରାକ୍ଟିଭ୍ ଟୁଲ୍ ଆପଣଙ୍କୁ ସିଧାସଳଖ କୋଡ୍ ସହିତ କାମ କରିବାକୁ ଦିଏ |