উত্তর:
Elements
কেবলমাত্র সেই উপাদানগুলি পাওয়া যায় যা প্রত্যক্ষ বংশধর অর্থাৎ তাত্ক্ষণিক শিশু।
Descendants
যে কোনও স্তরে বাচ্চাদের, বৃদ্ধ-সন্তানাদি ইত্যাদিতে বাচ্চাদের সন্ধান করে ...
পার্থক্যটি দেখানোর জন্য এখানে একটি উদাহরণ রয়েছে:
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
কোড:
XDocument doc = XDocument.Load("input.xml");
XElement root = doc.Root;
foreach (XElement e in root.Elements("bar"))
{
Console.WriteLine("Elements : " + e.Value);
}
foreach (XElement e in root.Descendants("bar"))
{
Console.WriteLine("Descendants : " + e.Value);
}
ফলাফল:
উপাদানসমূহ: পরীক্ষা 1 উপাদানসমূহ: পরীক্ষা 3 বংশধর: পরীক্ষা 1 বংশদ্ভুত: পরীক্ষা 2 বংশদ্ভুত: পরীক্ষা 3
আপনি যদি জানেন যে যে উপাদানগুলি আপনি চান তা তাত্ক্ষণিক শিশু তবে আপনি যদি এর Elements
পরিবর্তে ব্যবহার করেন তবে আপনি আরও ভাল পারফরম্যান্স পাবেন Descendants
।
Descendants
নির্দিষ্ট নামের জন্য বর্তমান উপাদানটির পুরো সাবট্রিটি অনুসন্ধান করবে (বা কোনও নাম না দেওয়া থাকলে গাছের সমতল সংস্করণটি ফিরিয়ে দেবে), তবে Elements
কেবলমাত্র বর্তমান উপাদানটির তাত্ক্ষণিক শিশুদের অনুসন্ধান করবে।