লিনক থেকে এক্সএমএল অবতরণ এবং উপাদানগুলির মধ্যে পার্থক্য কী


181

আমি ভিএস ইন্টেলিজেন্সে এই দুটি কীওয়ার্ড পেয়েছি। আমি তাদের মধ্যে পার্থক্যটি গুগল করার চেষ্টা করেছি এবং এর স্পষ্ট উত্তর পাইনি। এর মধ্যে কোনটির ছোট থেকে মাঝারি এক্সএমএল ফাইলগুলির সাথে সেরা পারফরম্যান্স রয়েছে। ধন্যবাদ

উত্তর:


292

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


দুর্দান্ত উত্তর, আমি সবসময় ভেবেছিলাম যে আপনার বর্ণনায় হাইলাইট করা হিসাবে দু'জন কিছুটা পিছনের দিকে ছিল (উপাদানগুলির বর্ণনা দেওয়ার সময়, আপনাকে সর্বদা "বংশধর" শব্দটি ব্যবহার করা উচিত যেখানে বংশের কথা বলার সময় এটি কিছুটা বেশি
alচ্ছিক হয়

16

Descendantsনির্দিষ্ট নামের জন্য বর্তমান উপাদানটির পুরো সাবট্রিটি অনুসন্ধান করবে (বা কোনও নাম না দেওয়া থাকলে গাছের সমতল সংস্করণটি ফিরিয়ে দেবে), তবে Elementsকেবলমাত্র বর্তমান উপাদানটির তাত্ক্ষণিক শিশুদের অনুসন্ধান করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.