এক্সএমএল ডকুমেন্ট:
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
এক্সপথ এক্সপ্রেশন:
//*[contains(text(), 'ABC')]
//*
মূল নোডের যে কোনও বংশধর উপাদানটির সাথে মেলে । এটি হ'ল মূল উপাদানটি ছাড়া কোনও উপাদান but
[...]
এটি একটি শিকারী , এটি নোড-সেট ফিল্টার করে। এটি নোডগুলি দেয় যার ...
জন্য true
:
একটি প্রাক্টিকেট একটি নোড-সেট ফিল্টার করে [...] একটি নতুন নোড-সেট উত্পাদন করতে। ফিল্টার করার জন্য নোড-সেটের প্রতিটি নোডের জন্য, প্রিডিকেটএক্সপিআর মূল্যায়ন করা হয় [...]; যদি প্রিডিকেটএক্সপ্রিপ সেই নোডের জন্য সত্যকে মূল্যায়ন করে তবে নোডটি নতুন নোড-সেটে অন্তর্ভুক্ত করা হবে; অন্যথায়, এটি অন্তর্ভুক্ত করা হয় না।
contains('haystack', 'needle')
ফেরৎ true
যদি haystack
রয়েছে needle
:
ফাংশন: বুলিয়ান রয়েছে (স্ট্রিং, স্ট্রিং)
যদি প্রথম আর্গুমেন্ট স্ট্রিংয়ে দ্বিতীয় আর্গুমেন্ট স্ট্রিং থাকে তবে এতে ফাংশনটি সত্য হয় এবং অন্যথায় মিথ্যা ফিরিয়ে দেয়।
তবে contains()
তার প্রথম প্যারামিটার হিসাবে একটি স্ট্রিং নেয়। এবং এটি নোড পাস হয়েছে। প্রথম প্যারামিটার হিসাবে পাস হওয়া প্রতিটি নোড বা নোড-সেটটি কাজ করে ফাংশনটির মাধ্যমে স্ট্রিংয়ে রূপান্তরিত হবে string()
:
একটি আর্গুমেন্ট স্ট্রিং ফাংশন কল করে যেমন স্ট্রিং টাইপ রূপান্তরিত হয়।
string()
ফাংশন আয় string-value
এর প্রথম নোড :
নোড-সেট নোড-সেটে নোডের স্ট্রিং-মানটি যা ডকুমেন্ট ক্রমে প্রথম হয় সেটিকে স্ট্রিংতে রূপান্তরিত করে। নোড-সেট খালি থাকলে একটি খালি স্ট্রিংটি ফিরে আসে।
string-value
একটি উপাদান নোড :
উপাদান নোডের স্ট্রিং-মান হ'ল ডকুমেন্ট ক্রমে উপাদান নোডের সমস্ত পাঠ নোড বংশধরের স্ট্রিং-মানগুলির সংমিশ্রণ।
string-value
একটি পাঠ্য নোডের :
একটি পাঠ্য নোডের স্ট্রিং-মান হ'ল অক্ষর ডেটা।
সুতরাং, মূলত string-value
সমস্ত পাঠ যা নোডে অন্তর্ভুক্ত থাকে (সমস্ত বংশধর পাঠ্য নোডের সংমিশ্রণ)।
text()
কোনও নোড পরীক্ষা যা কোনও পাঠ্য নোডের সাথে মেলে:
নোড পরীক্ষার পাঠ্যটি কোনও পাঠ্য নোডের ক্ষেত্রেই সত্য। উদাহরণস্বরূপ, চাইল্ড :: টেক্সট () প্রসঙ্গ নোডের পাঠ্য নোডের শিশুদের নির্বাচন করবে।
এটি বলার পরে, //*[contains(text(), 'ABC')]
কোনও উপাদানের সাথে মেলে (তবে মূল নোড), এর মধ্যে প্রথম পাঠ্য নোড রয়েছে ABC
। যেহেতু text()
একটি নোড-সেট দেয় যা প্রসঙ্গে নোডের সমস্ত শিশু পাঠ্য নোড (যার সাথে একটি অভিব্যক্তি মূল্যায়ন করা হয়) সরবরাহ করে relative তবে contains()
প্রথমটিই নেয়। উপরের নথির জন্য পাথের সাথে মেলেStreet
উপাদানটির সাথে ।
নিম্নলিখিত এক্সপ্রেশনটি //*[text()[contains(., 'ABC')]]
কোনও উপাদানের সাথে মেলে (তবে মূল নোড), এতে অন্তত একটি শিশু পাঠ নোড রয়েছে ABC
। .
প্রসঙ্গ নোড উপস্থাপন করে। এই ক্ষেত্রে, এটি কোনও উপাদানগুলির চাইল্ড টেক্সট নোড তবে মূল নোড। সুতরাং উপরের নথির জন্য পথটি মেলে Street
, এবংComment
উপাদানগুলির সাথে ।
তারপরে এখন, //*[contains(., 'ABC')]
কোনও উপাদান (তবে মূল নোড) এর সাথে মেলে যা ABC
(বংশোদ্ভূত পাঠ্য নোডের সংমিশ্রণে ) ধারণ করে। ডকুমেন্ট উপরে এটা মিলের জন্য Home
, Addr
, Street
, এবং Comment
উপাদান। যেমনটি , দ্য , এবং উপাদানগুলির সাথে //*[contains(., 'BLAH ABC')]
মেলে ।Home
Addr
Comment
//*[contains(text(),'ABC')]
কেবলমাত্র<Street>
উপাদানটি ফেরত দেয় । এটি<Street>
বা পূর্বপুরুষদের কোনও ফেরত দেয় না<Comment>
।