C# (.NET) में XML के साथ कार्य: शुरुआती लोगों के लिए पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) में XML के साथ कार्य: पूर्ण गाइड



XML (Extensible Markup Language) .NET इकोसिस्टम में संरचित डेटा को संग्रहीत और स्थानांतरित करने के लिए प्रमुख प्रारूपों में से एक बना हुआ है। C# में XML के साथ काम करने के लिए कई शक्तिशाली उपकरण उपलब्ध हैं: क्लासिक XmlDocument से लेकर LINQ to XML के आधुनिक XDocument और XmlSerializer के माध्यम से उन्नत सीरियलाइज़ेशन तक। इस लेख में हम व्यावहारिक उदाहरणों के साथ सभी मुख्य दृष्टिकोणों पर चर्चा करेंगे।



1. क्लासिक दृष्टिकोण: XmlDocument



System.Xml.XmlDocument एक DOM-मॉडल (Document Object Model) है, जो पूरे XML दस्तावेज़ को नोड्स के पेड़ के रूप में मेमोरी में लोड करता है। यह दृष्टिकोण .NET Framework 1.0 के समय से डेवलपर्स से परिचित है।



XML लोड करना और पढ़ना



using System.Xml;

XmlDocument doc = new XmlDocument();doc.Load("books.xml");

// रूट एलिमेंट प्राप्त करेंXmlElement root = doc.DocumentElement;

// सभी चाइल्ड नोड्स को ट्रैवर्स करेंforeach (XmlNode node in root.ChildNodes){ if (node.Name == "book") { string title = node["title"]?.InnerText; string author = node["author"]?.InnerText; Console.WriteLine($"पुस्तक: {title}, लेखक: {author}"); }}


XML बनाना और लिखना



XmlDocument newDoc = new XmlDocument();XmlElement rootElem = newDoc.CreateElement("library");newDoc.AppendChild(rootElem);

XmlElement book = newDoc.CreateElement("book");rootElem.AppendChild(book);

XmlElement title = newDoc.CreateElement("title");title.InnerText = "मास्टर और मार्गरीटा";book.AppendChild(title);

newDoc.Save("library.xml");


लाभ: सरलता, XPath समर्थन, DOM पर पूर्ण नियंत्रण।
नुकसान: अधिक मेमोरी खपत, LINQ का समर्थन नहीं।



2. आधुनिक दृष्टिकोण: LINQ to XML (XDocument)



.NET 3.5 से शुरू करके, नेमस्पेस System.Xml.Linq का उपयोग करने की अनुशंसा की जाती है। क्लासेस XDocument, XElement और XAttribute LINQ के साथ पूर्ण एकीकरण के साथ एक हल्का और अधिक कार्यात्मक API प्रदान करते हैं।



XDocument के साथ XML पढ़ना



using System.Xml.Linq;

XDocument xdoc = XDocument.Load("books.xml");

var books = xdoc.Descendants("book") .Select(b => new { Title = b.Element("title")?.Value, Author = b.Element("author")?.Value, Year = (int?)b.Element("year") });

foreach (var book in books){ Console.WriteLine($"{book.Title} — {book.Author} ({book.Year})");}


XElement के साथ XML बनाना



XDocument xdoc = new XDocument(    new XElement("library",        new XElement("book",            new XElement("title", "अपराध और सजा"),            new XElement("author", "एफ.एम. दोस्तोयेव्स्की"),            new XAttribute("id", "1"        )    ));

xdoc.Save("library2.xml");


लाभ: संक्षिप्त सिंटैक्स, LINQ समर्थन, कम मेमोरी खपत।
नुकसान: DOM के आदी डेवलपर्स के लिए अपरिचित हो सकता है।



3. ऑब्जेक्ट्स का XML में सीरियलाइज़ेशन: XmlSerializer



यदि आपके पास C# क्लासेस हैं, तो आप System.Xml.Serialization.XmlSerializer का उपयोग करके उन्हें स्वचालित रूप से XML में और वापस परिवर्तित कर सकते हैं।



सीरियलाइज़ेशन के लिए क्लास का उदाहरण



[Serializable]public class Book{    [XmlAttribute("id")]    public int Id { get; set; }

[XmlElement("title")] public string Title { get; set; }

[XmlElement("author")] public string Author { get; set; }

[XmlIgnore] public string InternalNote { get; set; }}


सीरियलाइज़ेशन (ऑब्जेक्ट → XML)



using System.Xml.Serialization;using System.IO;

Book book = new Book { Id = 1, Title = "युद्ध और शांति", Author = "एल.एन. टॉल्स्टॉय" };

XmlSeria

अनुशंसाएँ