সি # তে এক্সএমএলকে কীভাবে ডিল করবেন


87

সি # 2.0 তে এক্সএমএল ডকুমেন্টস, এক্সএসডি ইত্যাদি মোকাবিলার সর্বোত্তম উপায় কী?

কোন ক্লাসগুলি ব্যবহার করতে হবে ইত্যাদি। এক্সএমএল নথিগুলি বিশ্লেষণ এবং তৈরি করার সর্বোত্তম অনুশীলনগুলি কী are

সম্পাদনা:। নেট 3.5 পরামর্শ এছাড়াও স্বাগত।


4
যারা আরও কার্যক্ষম সমাধান সমাধানের চেষ্টা করছেন তাদের জন্য এটি এড়িয়ে যান। এটি পুরানো একটি। নেট গ্রন্থাগার। পরিবর্তে এক্স ডকুমেন্ট ব্যবহার করুন, এবং আপনি হতাশার মধ্যে আপনার চোখের আড়াল করে বাঁচাবেন
এআর

উত্তর:


180

সি # ২.০ এ পঠন এবং লেখার প্রাথমিক মাধ্যমগুলি এক্সএমএল ডকুমেন্ট শ্রেণীর মাধ্যমে সম্পন্ন হয় । আপনি নিজের বেশিরভাগ সেটিংস সরাসরি এক্সএমএল ডকুমেন্টে এটি XMLReader গ্রহণ করে লোড করতে পারেন।

সরাসরি এক্সএমএল লোড হচ্ছে

XmlDocument document = new XmlDocument();
document.LoadXml("<People><Person Name='Nick' /><Person Name='Joe' /></People>");

একটি ফাইল থেকে এক্সএমএল লোড হচ্ছে

XmlDocument document = new XmlDocument();
document.Load(@"C:\Path\To\xmldoc.xml");
// Or using an XmlReader/XmlTextReader
XmlReader reader = XmlReader.Create(@"C:\Path\To\xmldoc.xml");
document.Load(reader);

এক্সপিথ ব্যবহার করে আমি এক্সএমএল ডকুমেন্টটি পড়ার সবচেয়ে সহজ / দ্রুততম উপায়টি খুঁজে পাই।

এক্সপথ ব্যবহার করে একটি এক্সএমএল ডকুমেন্ট পড়া (এক্সএমএল ডকুমেন্ট ব্যবহার করা যা আমাদের সম্পাদনা করতে দেয়)

XmlDocument document = new XmlDocument();
document.LoadXml("<People><Person Name='Nick' /><Person Name='Joe' /></People>");

// Select a single node
XmlNode node = document.SelectSingleNode("/People/Person[@Name = 'Nick']");

// Select a list of nodes
XmlNodeList nodes = document.SelectNodes("/People/Person");

এক্সএমএল নথি যাচাই করতে আপনার যদি এক্সএসডি ডকুমেন্টগুলির সাথে কাজ করার দরকার হয় তবে আপনি এটি ব্যবহার করতে পারেন।

এক্সএসডি স্কিমার বিরুদ্ধে এক্সএমএল ডকুমেন্টগুলি বৈধকরণ

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidateType = ValidationType.Schema;
settings.Schemas.Add("", pathToXsd); // targetNamespace, pathToXsd

XmlReader reader = XmlReader.Create(pathToXml, settings);
XmlDocument document = new XmlDocument();

try {
    document.Load(reader);
} catch (XmlSchemaValidationException ex) { Trace.WriteLine(ex.Message); }

প্রতিটি নোডে এক্সএসডি এর বিপরীতে এক্সএমএল বৈধকরণ (আপডেট 1)

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidateType = ValidationType.Schema;
settings.Schemas.Add("", pathToXsd); // targetNamespace, pathToXsd
settings.ValidationEventHandler += new ValidationEventHandler(settings_ValidationEventHandler);

XmlReader reader = XmlReader.Create(pathToXml, settings);
while (reader.Read()) { }

private void settings_ValidationEventHandler(object sender, ValidationEventArgs args)
{
    // e.Message, e.Severity (warning, error), e.Error
    // or you can access the reader if you have access to it
    // reader.LineNumber, reader.LinePosition.. etc
}

একটি এক্সএমএল নথি রচনা (ম্যানুয়ালি)

XmlWriter writer = XmlWriter.Create(pathToOutput);
writer.WriteStartDocument();
writer.WriteStartElement("People");

writer.WriteStartElement("Person");
writer.WriteAttributeString("Name", "Nick");
writer.WriteEndElement();

writer.WriteStartElement("Person");
writer.WriteStartAttribute("Name");
writer.WriteValue("Nick");
writer.WriteEndAttribute();
writer.WriteEndElement();

writer.WriteEndElement();
writer.WriteEndDocument();

writer.Flush();

(আপডেট 1)

.NET 3.5 এ, আপনি অনুরূপ কাজ সম্পাদনের জন্য এক্সডোকামেন্ট ব্যবহার করেন। তবে পার্থক্যটি হ'ল আপনার প্রয়োজনীয় তথ্যটি নির্বাচন করতে আপনার লিনক ক্যোয়ারীগুলি সম্পাদন করার সুবিধা রয়েছে। অবজেক্ট ইনিশিয়ালাইজার যুক্ত করার সাথে সাথে আপনি এমন একটি ক্যোয়ারী তৈরি করতে পারেন যা এমনকি আপনার নিজের সংজ্ঞায়িত অবজেক্টগুলিকে ক্যোয়ারীতে ডানদিকে ফেরত দেয়।

    XDocument doc = XDocument.Load(pathToXml);
    List<Person> people = (from xnode in doc.Element("People").Elements("Person")
                       select new Person
                       {
                           Name = xnode.Attribute("Name").Value
                       }).ToList();

(আপডেট 2)

.NET 3.5 এর একটি দুর্দান্ত উপায় XML তৈরি করতে এক্সডোকামেন্ট ব্যবহার করা নীচে রয়েছে। এটি কোড পছন্দসই আউটপুট অনুরূপ প্যাটার্ন প্রদর্শিত হবে।

XDocument doc =
        new XDocument(
              new XDeclaration("1.0", Encoding.UTF8.HeaderName, String.Empty),
              new XComment("Xml Document"),
              new XElement("catalog",
                    new XElement("book", new XAttribute("id", "bk001"),
                          new XElement("title", "Book Title")
                    )
              )
        );

সৃষ্টি করে

<!--Xml Document-->
<catalog>
  <book id="bk001">
    <title>Book Title</title>
  </book>
</catalog>

অন্য সব ব্যর্থ, আপনি এই এমএসডিএন নিবন্ধটি যাচাই করতে পারেন যার অনেক উদাহরণ রয়েছে যা আমি এখানে এবং আরও বেশি আলোচনা করেছি। http://msdn.microsoft.com/en-us/library/aa468556.aspx


4
আপনি উল্লেখ করতে চাইতে পারেন যে আপনি শেষ উদাহরণে এক্সডোকামেন্টটি এক্সডোকামেন্টটি এক্সএমএল ডকুমেন্টের থেকে একেবারেই আলাদা
অ্যারন পাওয়েল

4
সংশোধন; সি # 3.5 নেই; আপনার অর্থ। নেট 3.5 এবং সি # 3.0
মার্ক গ্রাভেল

ওহ, এবং "ফ্লাই অন" [অবজেক্ট ইনিশিয়ালাইজারস] সি # 3.0 এবং এক্সএমএল ডকুমেন্টের সাথে একইভাবে কাজ করবে - এখনও একটি ভাল উত্তর, যদিও (+1)
মার্ক গ্র্যাভেল

এটি উল্লেখ করার মতো হতে পারে যে আপনি যদি এক্সপ্যাথের সাথে ক্যোয়ারী করার জন্য কোনও ডকুমেন্ট লোড করছেন (এবং সম্পাদনা না করে) তবে এক্সপথ ডকুমেন্টটি ব্যবহার করা আরও কার্যকর হবে
অলিভার

এই স্কিমা বৈধকরণ নোড দ্বারা নোড হয়? যদি তা না হয় তবে নোড দিয়ে নোড করার কোনও উপায় আছে?
মালিক দাউদ আহমদ খোকর

30

এটি আকারের উপর নির্ভর করে; ছোট থেকে মাঝের আকারের এক্সএমএল এর জন্য একটি ডিওএম যেমন এক্সএমএল ডকুমেন্ট (যে কোনও সি # /। নেট সংস্করণ) বা এক্সডোকামেন্ট (। নেট 3.5 / সি # 3.0) স্পষ্ট বিজয়ী। Xsd ব্যবহার, আপনি XML একটি ব্যবহার লোড করতে XmlReader , এবং একটি XmlReader (থেকে স্বীকার তৈরি করুন ) একজন XmlReaderSettings । XmlReaderSettings বস্তু টি স্কীমাস সম্পত্তি যে xsd (অথবা DTD) বৈধতা সম্পাদন করতে ব্যবহার করা যাবে।

এক্সএমএল লেখার জন্য, একই জিনিসগুলি প্রযোজ্য, লিংক-টু-এক্সএমএল (এক্সডোকামেন্ট) এর সাথে পুরানো এক্সএমএল ডকুমেন্টের চেয়ে কন্টেন্ট স্থাপন করা কিছুটা সহজ not

তবে বিশাল এক্সএমএল-এর জন্য একটি ডিওএম খুব বেশি মেমরি ছড়িয়ে দিতে পারে, সেক্ষেত্রে আপনাকে সরাসরি এক্সএমএলআরডার / এক্সএমএল রাইটার ব্যবহার করতে হবে।

অবশেষে, এক্সএমএলকে ম্যানিপুলেট করার জন্য আপনি XslCompiledTransfor (একটি এক্সএসল্ট স্তর) ব্যবহার করতে চাইতে পারেন wish

এক্সএমএল নিয়ে কাজ করার বিকল্পটি কোনও অবজেক্ট মডেলের সাথে কাজ করা; আপনি xsd.exe ব্যবহার করে এমন ক্লাস তৈরি করতে পারবেন যা কোনও এক্সএসডি-কমপ্লায়েন্ট মডেলকে উপস্থাপন করে এবং এক্সএমএলকে অবজেক্ট হিসাবে লোড করে , ওও দিয়ে চালিত করতে এবং তারপরে আবার সেই বস্তুগুলিকে সিরিয়ালাইজ করতে পারে; আপনি এটি এক্সএমএলসিরাইজারের সাহায্যে করেন


একটি বড় এক্সএমএল ডকুমেন্ট (40 কে লাইন) হেরফের করতে (উপাদানগুলি যোগ / যোগ করতে) To সবচেয়ে ভাল উপায় কি? আমি লিনকিউ-টু-এক্সএমএল ব্যবহার করতাম।
নিওহ

12

nyxtom এর উত্তর খুব ভাল। আমি এতে কয়েকটি জিনিস যুক্ত করব:

আপনার যদি কোনও এক্সএমএল ডকুমেন্টে কেবলমাত্র পঠনযোগ্য অ্যাক্সেসের প্রয়োজন হয় তবে XPathDocumentএটি তার চেয়ে অনেক বেশি হালকা ওজনের বস্তু XmlDocument

ব্যবহারের খারাপ দিকটি XPathDocumentহল আপনি পরিচিত SelectNodesএবং SelectSingleNodeপদ্ধতিগুলি ব্যবহার করতে পারবেন না XmlNode। পরিবর্তে, আপনাকে যে সরঞ্জামগুলি সরবরাহ করে সেগুলি IXPathNavigableব্যবহার CreateNavigatorকরতে হবে : একটি তৈরি করতে XPathNavigatorব্যবহার করুন XPathNavigatorএবং XPathNodeIteratorএক্সপ্যাথের মাধ্যমে আপনি যে নোডগুলি খুঁজে পান তার তালিকাগুলির পুনরাবৃত্তি করতে এস তৈরি করতে ব্যবহার করুন । এটির জন্য সাধারণত XmlDocumentপদ্ধতির তুলনায় কোডের আরও কয়েকটি লাইন প্রয়োজন ।

তবে: XmlDocumentএবং XmlNodeক্লাসগুলি বাস্তবায়িত হয় IXPathNavigable, সুতরাং যে কোনও কোড আপনি এই পদ্ধতিতে ব্যবহার করতে লিখেন XPathDocumentসেগুলিও একটিতে কাজ করে XmlDocument। আপনি যদি লেখার বিরুদ্ধে লিখতে অভ্যস্ত হন তবে IXPathNavigableআপনার পদ্ধতিগুলি যে কোনও একটি বস্তুর বিরুদ্ধে কাজ করতে পারে। (এই কারণেই ব্যবহার করে XmlNodeএবং XmlDocumentপদ্ধতিতে স্বাক্ষরগুলি এফএক্সকপ দ্বারা চিহ্নিত করা হয়।)

বিলাপজনকভাবে, XDocumentএবং XElement(এবং XNodeএবং XObject) প্রয়োগ করে না IXPathNavigable

আরেকটা জিনিস nyxtom এর উত্তরে উপস্থিত নেই XmlReader। আপনি সাধারণত XmlReaderপ্রসেস শুরু করার আগে এক্সএমএল স্ট্রিমটিকে কোনও অবজেক্ট মডেলে পার্সিংয়ের ওভারহেড এড়াতে ব্যবহার করেন । পরিবর্তে, আপনি XmlReaderইনপুট স্ট্রিমটি একবারে একটি এক্সএমএল নোড প্রক্রিয়া করতে একটি ব্যবহার করেন। এটি মূলত। SAX এর জন্য নেট এর উত্তর। এটি আপনাকে খুব বড় এক্সএমএল ডকুমেন্টগুলি প্রক্রিয়াকরণের জন্য খুব দ্রুত কোড লিখতে দেয়।

XmlReader এক্সএমএল ডকুমেন্টের টুকরো প্রক্রিয়াকরণের সহজতম উপায়ও সরবরাহ করে, যেমন এসএমএল সার্ভারের জন্য এক্সএমএল র জন্য বিকল্পটি প্রত্যাবর্তন করে এমন কোনও অন্তর্ভুক্ত উপাদান ছাড়াই এক্সএমএল উপাদানগুলির প্রবাহ।

আপনি যে কোডটি ব্যবহার করে লিখছেন XmlReaderসেটি সাধারণভাবে খুব শক্তভাবে এটি এক্সএমএল পড়ার বিন্যাসে মিলিত হয়। এক্সপথ ব্যবহার করা আপনার কোডকে অনেক বেশি, খুব বেশি আলগাভাবে এক্সএমএলে মিলিত হতে দেয়, এজন্যই এটি সাধারণত সঠিক উত্তর হয়। তবে যখন আপনার ব্যবহারের XmlReaderপ্রয়োজন হবে তখন আপনার সত্যই এটি প্রয়োজন।


4
নোট করুন যে XPathNavigator CreateNavigator(this XNode node)একটি XPathNavigatorথেকে তৈরি করার জন্য একটি এক্সটেনশন পদ্ধতি XNodeরয়েছে (এতে উত্পন্ন শ্রেণিটি রয়েছে XDocument)।
ডেভ

5

প্রথমত, নতুন এক্সডোকামেন্ট এবং এক্সলেমেন্ট ক্লাসগুলি জানুন , কারণ তারা আগের এক্সএমএল ডকুমেন্ট পরিবারের তুলনায় উন্নতি।

  1. তারা লিনকিউ নিয়ে কাজ করে
  2. এগুলি দ্রুত এবং আরও লাইটওয়েট হয়

তবে , লেগ্যাসি কোড - বিশেষত পূর্বে উত্পন্ন উত্সগুলি নিয়ে কাজ করতে আপনাকে এখনও পুরানো শ্রেণিগুলি ব্যবহার করতে হতে পারে। সেক্ষেত্রে এই এক্সএমএল-হ্যান্ডলিং ক্লাসগুলির মধ্যে আন্তঃসংযোগ স্থাপনের জন্য আপনাকে কিছু নিদর্শনগুলির সাথে পরিচিত হতে হবে।

আমি মনে করি আপনার প্রশ্নটি বেশ বিস্তৃত, এবং বিবরণ দেওয়ার জন্য একটি একক উত্তরের খুব বেশি প্রয়োজন, তবে এটি আমি প্রথম সাধারণ উত্তর যা ভেবেছিলাম এবং এটি একটি সূচনা হিসাবে কাজ করে।


আমি সম্মত তারা (এক্সডোকামেন্ট ইত্যাদি) দুর্দান্ত তবে ওপি সি # 2.0 সম্পর্কে জিজ্ঞাসা করেছে।
মার্ক গ্র্যাভেল


2

আপনি .NET 3.5 এ কাজ করছেন এবং আপনি পরীক্ষামূলক কোড সম্পর্কে ভীত না হয়ে থাকলে আপনি লিনিকউ থেকে এক্সএসডি পরীক্ষা করতে পারেন ( http://blogs.msdn.com/xMLteam/archive/2008/02/21/linq-to- xsd-alpha-0-2.aspx ) যা XSD থেকে এক্স নেট থেকে ক্লাস জেনারেট করে ( এক্সএসডি থেকে নিয়মে অন্তর্ভুক্ত)।

এরপরে এটি কোনও ফাইলকে সরাসরি লিখতে এবং XSD বিধি মেনে চলে তা নিশ্চিত করে কোনও ফাইল থেকে পড়ার ক্ষমতা রাখে।

আপনার সাথে কাজ করা কোনও এক্সএমএল ডকুমেন্টের জন্য আমি অবশ্যই এক্সএসডি থাকার পরামর্শ দিচ্ছি:

  • এক্সএমএলে আপনাকে বিধি প্রয়োগ করার অনুমতি দেয়
  • এক্সএমএলটি কীভাবে গঠন করা হবে / তা অন্যকে দেখার অনুমতি দেয়
  • এক্সএমএলের বৈধতার জন্য ব্যবহার করা যেতে পারে

আমি দেখতে পেলাম যে লিকুইড এক্সএমএল স্টুডিও এক্সএসডি তৈরির জন্য দুর্দান্ত সরঞ্জাম এবং এটি বিনামূল্যে!


2

এক্সএমএল ডকুমেন্ট ক্লাস সহ এক্সএমএল রচনা করা হচ্ছে

//itemValues is collection of items in Key value pair format
//fileName i name of XML file which to creatd or modified with content
    private void WriteInXMLFile(System.Collections.Generic.Dictionary<string, object> itemValues, string fileName)
    {
        string filePath = "C:\\\\tempXML\\" + fileName + ".xml";
        try
        {

            if (System.IO.File.Exists(filePath))
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(filePath);                   

                XmlNode rootNode = doc.SelectSingleNode("Documents");

                XmlNode pageNode = doc.CreateElement("Document");
                rootNode.AppendChild(pageNode);


                foreach (string key in itemValues.Keys)
                {

                    XmlNode attrNode = doc.CreateElement(key);
                    attrNode.InnerText = Convert.ToString(itemValues[key]);
                    pageNode.AppendChild(attrNode);
                    //doc.DocumentElement.AppendChild(attrNode);

                }
                doc.DocumentElement.AppendChild(pageNode);
                doc.Save(filePath);
            }
            else
            {
                XmlDocument doc = new XmlDocument();
                using(System.IO.FileStream fs = System.IO.File.Create(filePath))
                {
                    //Do nothing
                }

                XmlNode rootNode = doc.CreateElement("Documents");
                doc.AppendChild(rootNode);
                doc.Save(filePath);

                doc.Load(filePath);

                XmlNode pageNode = doc.CreateElement("Document");
                rootNode.AppendChild(pageNode);

                foreach (string key in itemValues.Keys)
                {                          
                    XmlNode attrNode = doc.CreateElement(key);                           
                    attrNode.InnerText = Convert.ToString(itemValues[key]);
                    pageNode.AppendChild(attrNode);
                    //doc.DocumentElement.AppendChild(attrNode);

                }
                doc.DocumentElement.AppendChild(pageNode);

                doc.Save(filePath);

            }
        }
        catch (Exception ex)
        {

        }

    }

OutPut look like below
<Dcouments>
    <Document>
        <DocID>01<DocID>
        <PageName>121<PageName>
        <Author>Mr. ABC<Author>
    <Dcoument>
    <Document>
        <DocID>02<DocID>
        <PageName>122<PageName>
        <Author>Mr. PQR<Author>
    <Dcoument>
</Dcouments>

1

আপনি যদি ডিজাইনারে কোনও টাইপ করা ডেটাसेट তৈরি করেন তবে আপনি স্বয়ংক্রিয়ভাবে একটি এক্সএসডি পাবেন, একটি দৃ typ়ভাবে টাইপ করা বস্তু, এবং কোডের এক লাইনের সাহায্যে এক্সএমএল লোড এবং সংরক্ষণ করতে পারেন।


আমি ডেটাসেটের সাথে দুর্দান্ত সাফল্য পেয়েছি। এগুলি ডেটাবেসগুলির সাথে খুব বন্ধুত্বপূর্ণ।
ব্যবহারকারী 1

1

আমার ব্যক্তিগত মতামত, একজন সি # প্রোগ্রামার হিসাবে, সি # তে এক্সএমএলকে মোকাবেলা করার সর্বোত্তম উপায় হ'ল কোডটির সেই অংশটি একটি ভিবি। নেট প্রকল্পে অর্পণ করা। .NET 3.5 এ, ভিবি। নেট নেট এক্সএমএল লিটারালস রয়েছে যা এক্সএমএলকে আরও স্বজ্ঞাগত করে তোলে। উদাহরণস্বরূপ এখানে দেখুন:

ভিজ্যুয়াল বেসিকটিতে লিনকিউ থেকে এক্সএমএল এর ওভারভিউ

(সি # কোড নয়, ভিবি কোড প্রদর্শনের জন্য পৃষ্ঠাটি সেট করতে ভুলবেন না))

আমি প্রকল্পের বাকি অংশটি সি # তে লিখতাম, তবে একটি রেফারেন্সড ভিবি প্রকল্পে এক্সএমএল হ্যান্ডেল করব।


শুধুমাত্র এক্সএমএল আক্ষরিক জন্য এটি ভিবিতে স্যুইচ করা মূল্য নয়। এক্সএমএল কেবল আক্ষরিক সাথে ডিল করে। যদি এক্সএমএলটিকে প্যারামিটার হিসাবে পাস করা হয়, এক্সএমএল আক্ষরিক সমর্থন আপনাকে খুব বেশি সুবিধা দেয় না। পরিবর্তে, vb.net এর উত্তরাধিকার সিনট্যাক্স সি # এর হ্যাপি প্রোগ্রামিং অভিজ্ঞতা নষ্ট করবে।
Gqqnbig

0

nyxtom,

উদাহরণ 1-এ "ডক" এবং "এক্সডোক" মিলবে না?

XDocument **doc** = XDocument.Load(pathToXml);
List<Person> people = (from xnode in **xdoc**.Element("People").Elements("Person")
                   select new Person
                   {
                       Name = xnode.Attribute("Name").Value
                   }).ToList();

আপনি যে উত্তরটি উল্লেখ করছেন তাতে অনুমোদনের জন্য আমি একটি সম্পাদনা জমা দিয়েছি, তবে এটি অবশ্যই একটি মন্তব্য হওয়া উচিত, উত্তর নয়।
ডেভিড থম্পসন

ধন্যবাদ ডেভিড সম্মত, এটি আমাকে মন্তব্য করার অনুমতি দেবে না। নিশ্চিত কেন।
মোকামাক্স্রেইগ

0

কুকির উত্তরটি ভাল ... তবে কীভাবে কোনও এক্সএসডি (বা এক্সএমএল) থেকে দৃ strongly়ভাবে টাইপ করা অবজেক্ট তৈরি করতে হবে এবং কয়েকটি লাইনের কোডটিতে সিরিয়ালাইজ / ডিসেরায়ালাইজ করা যায় সে সম্পর্কিত বিশদ নির্দেশাবলী এখানে রয়েছে:

নির্দেশনা


"আপনি যে পৃষ্ঠার সন্ধান করেছেন তা বিদ্যমান নেই" " :(
ইয়ান গ্রেনার

0

আপনার যদি কখনও XmlNode<=> XNode<=> XElement
(যেমন লিনকিউ ব্যবহারের জন্য) এর মধ্যে ডেটা রূপান্তর করতে হয় তবে এই এক্সটেনশনগুলি আপনার পক্ষে সহায়ক হতে পারে:

public static class MyExtensions
{
    public static XNode GetXNode(this XmlNode node)
    {
        return GetXElement(node);
    }

    public static XElement GetXElement(this XmlNode node)
    {
        XDocument xDoc = new XDocument();
        using (XmlWriter xmlWriter = xDoc.CreateWriter())
            node.WriteTo(xmlWriter);
        return xDoc.Root;
    }

    public static XmlNode GetXmlNode(this XElement element)
    {
        using (XmlReader xmlReader = element.CreateReader())
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(xmlReader);
            return xmlDoc;
        }
    }

    public static XmlNode GetXmlNode(this XNode node)
    {
        return GetXmlNode(node);
    }
}

ব্যবহার:

XmlDocument MyXmlDocument = new XmlDocument();
MyXmlDocument.Load("MyXml.xml");
XElement MyXElement = MyXmlDocument.GetXElement(); // Convert XmlNode to XElement
List<XElement> List = MyXElement.Document
   .Descendants()
   .ToList(); // Now you can use LINQ
...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.