XElement
और XDocument
के बीच क्या अंतर है और आप प्रत्येक का उपयोग कब करते हैं?XElement और XDocument के बीच क्या अंतर है?
उत्तर
XDocument एक संपूर्ण XML दस्तावेज़ का प्रतिनिधित्व करता है। यह आमतौर पर कई तत्वों से बना होता है।
XElement एक एक्सएमएल तत्व (गुणों, बच्चों आदि के साथ) का प्रतिनिधित्व करता है। यह एक बड़े दस्तावेज़ का हिस्सा है।
एक्सएमएल तत्व का उपयोग करते समय एक्सएमएलमेंट का उपयोग करें जब एक्सएमएल तत्व के साथ काम करते हैं।
उदाहरण के लिए - XElement
एक HasAttributes
संपत्ति यह बताते हैं कि कोई गुण तत्व पर मौजूद है, लेकिन के रूप में इस तरह के एक संपत्ति एक पूरी एक्सएमएल दस्तावेज़ के संदर्भ में कोई मतलब नहीं है एक XDocument
, नहीं करता है।
_XElement में कोई लोड विधि नहीं है: गलत लगता है, [लोड (स्ट्रिंग)] देखें (http://msdn.microsoft.com/en-us/library/bb298435.aspx) और [अन्य लोडिंग विधियों को ओवरलोड करना] (http: //msdn.microsoft.com/en-us/library/system.xml.linq.xelement.aspx)। – bluish
@bluish - सुधार के लिए धन्यवाद। उत्तर अपडेट किया गया। – Oded
MSDN से:
ध्यान दें कि आप केवल यदि आप विशिष्ट XDocument वर्ग द्वारा प्रदान की कार्यक्षमता की आवश्यकता होती है XDocument वस्तुओं को बनाने के लिए है। कई परिस्थितियों में, आप XElement के साथ सीधे पर काम कर सकते हैं। XElement के साथ सीधे काम करना एक सरल प्रोग्रामिंग मॉडल है।
XDocument XContainer से निकला है। इसलिए, इसमें बाल नोड्स हो सकते हैं। हालांकि, XDocument ऑब्जेक्ट्स में केवल एक बच्चा XElement नोड हो सकता है। यह XML मान को दर्शाता है कि XML दस्तावेज़ में केवल एक मूल तत्व हो सकता है।
यहां msdn से एक व्यावहारिक उदाहरण है जो इसे स्पष्ट करता है। मान लें कि आपके पास यह परीक्षण है।एक्सएमएल फ़ाइल:
foreach (var element in XDocument.Load("test.xml").Elements())
Console.WriteLine(element);
आप इस वापस पाने:
<Root>
<Child1>1</Child1>
<Child2>2</Child2>
<Child3>3</Child3>
</Root>
XDocument साथ आप ऐसा करते हैं, तो
<Root> <Child1>1</Child1> <Child2>2</Child2> <Child3>3</Child3> </Root>
Child1
नोड पर मूल्य पाने के लिए, आपको करना होगा:var child1 = XDocument.Load("test.xml").Element("Root").Element("Child1").Value;
या
var child1 = XDocument.Load("test.xml").Root.Element("Child1").Value;
XElement साथ अगर आप ऐसा करते हैं:
<Child1>1</Child1> <Child2>2</Child2> <Child3>3</Child3>
पर मूल्य प्राप्त करने के लिए:
foreach (var element in XElement.Load("test.xml").Elements()) Console.WriteLine(element);
आप इस वापस मिल 0 नोड, आप क्या करेंगे:
var child1 = XElement.Load("test.xml").Element("Child1").Value;
संक्षेप में, XElement
रूट नोड जबकि XDocument
does not को ध्यान नहीं देता। लगभग, XDocument.Root = XElement
, या XDocument.Root.Elements() = XElement.Elements()
। दोनों XContainer
से निकले हैं। एक और मामूली अंतर यह है कि XElement
IXmlSerializable
लागू करता है जो मैं ज्यादातर मामलों को नहीं सोचता। XElement
उन अधिकांश मामलों के लिए पर्याप्त होगा जहां आप उप नोड्स से पूछना चाहते हैं। नाम मुझे भ्रमित करता है, इसलिए मैं XDocument
का उपयोग करना पसंद करता हूं।
:
एक्सएमएल के लिए LINQ का उपयोग करते समय, आप XDocument क्लास का उपयोग आप एक टिप्पणी या प्रोसेसिंग निर्देश जोड़ना चाहते हैं, तो केवल दस्तावेज़ के मूल स्तर पर।
- 1. XDocument
- 2. # {} $ {} और% {} के बीच क्या अंतर है?
- 3. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 4. $ और $$ के बीच क्या अंतर है?
- 5. के बीच क्या अंतर है:। और: आर !?
- 6. भिन्नता और '-' के बीच क्या अंतर है?
- 7. "$^एन" और "$ +" के बीच क्या अंतर है?
- 8. XElement
- 9. XElement
- 10. के बीच क्या अंतर है?
- 11. अंतर और कहां के बीच क्या अंतर है?
- 12. एक्सएमएल तत्व का XDocument या XElement पार्सिंग जिसमें नामस्थान
- 13. एक foreach और LINQ के साथ XDocument कैसे बनाएं?
- 14. file_get_contents और fread बीच क्या अंतर है
- 15. क्या बीच का अंतर है :: और ::: स्काला
- 16. "। +" और "। +?" के बीच अंतर
- 17. XElement
- 18. XElement
- 19. $ {} और # {} के बीच अंतर क्या हैं?
- 20. XElement समारोह जोड़ें "xmlns =" कहते हैं XElement
- 21. PHP के बीच क्या अंतर है और इसमें शामिल है?
- 22. अपवाद के .TOString() और मैसेज के बीच क्या अंतर है?
- 23. 7zip के 7z.sfx और 7zsd.sfx के बीच क्या अंतर है?
- 24. डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?
- 25. UIImageView के फ्रेम और सीमाओं के बीच क्या अंतर है?
- 26. फ़ायरबग के console.log() और console.debug() के बीच क्या अंतर है?
- 27. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 28. ओरिएंटब संस्करणों के बीच क्या अंतर है?
- 29. एन्कोड/डीकोड के बीच क्या अंतर है?
- 30. os.popen() विधियों के बीच क्या अंतर है?
[यह एमएसडीएन लिंक] (http://msdn.microsoft.com/en-us/library/bb675196.aspx) हमें XDocument बनाम XDocument बनाम क्वेरी करने के बारे में स्पष्ट जानकारी देता है। – CSharp