जवाबों:
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);
}
परिणाम:
तत्व: टेस्ट १ तत्व: टेस्ट 3 वंशज: टेस्ट १ उतर: टेस्ट २ उतर: टेस्ट 3
यदि आप जानते हैं कि आप चाहते हैं कि तत्व तत्काल बच्चे हैं, तो आप बेहतर प्रदर्शन करेंगे यदि आप Elements
इसके बजाय उपयोग करते हैं Descendants
।
Descendants
निर्दिष्ट नाम के लिए वर्तमान तत्व के पूरे उपशीर्षक को खोजेगा (या यदि कोई नाम नहीं दिया गया है तो पेड़ का एक चपटा संस्करण लौटाएगा), जबकि Elements
वर्तमान तत्व के केवल तत्काल बच्चों की खोज करता है।