How to read an XML document object in C #?

In a C # visual project, I want to pass an XML document object to a method. In this method, I have to read the values ​​stored inside the object of the XML document. Without creating an XML file.

Thanks for the answer guys, I finally got my piece of code.

    //use following code when assign values to XMlDocument
         XMLOBJECT()
             {
                XmlDocument xmlEmployee = new XmlDocument();
                XmlElement xmlRoot =  xmlEmployee.CreateElement("HR");
                XmlElement xmlEmployees = xmlEmployee.CreateElement("Employee");
                xmlEmployees.SetAttribute("Name", "XYZ");
                xmlEmployees.SetAttribute("DOB", "12/12/2010");
                xmlRoot.AppendChild(xmlEmployees);
                xmlEmployee.AppendChild(xmlRoot);
                Employee Emp=new EMployee();
                Emp.retriveXMl(xmlEmployee);
              }

In the above code, our XML object is now created, we can pass the Xml object.

//Use Following code when assign values to Employee Object
 class employee
   {
    retrivelXMl(XMLDOCUMENT xmlEmployeeobject)
    {
    string NAME;
    int DOB;
            XmlNodeList xmlEmployees = xmlEmployeeobject.SelectNodes("//Employee");
             foreach (XmlElement Employee in xmlEmployees)
             {
             NAME = Employee.GetAttribute("Name"));
             DOB   = int.parse(Employee.GetAttribute("DOB"));      
             }
    }
   }
+3
source share
3 answers

You can use XmlNodeReaderto access items in XmlDocument.

, XmlDocument a XmlNodeReader, . , , , , XmlDocument XmlNodeReader .

, , , .

public void WriteXmlDocument(XmlDocument document)
{
    if (document == null)
    {
        throw new ArgumentNullException("document");
    }

    using (XmlNodeReader nodeReader = new XmlNodeReader(document))
    {
        while (nodeReader.Read())
        {
            Console.WriteLine(nodeReader.Value);
        }
    };
}

- -

XmlNodeReader. .

, node.

XmlNode specificNode = document.SelectSingleNode("/NodeName/ChildNodeName");

if (specificNode != null)
{
    XmlNodeReader specificNodeReader = new XmlNodeReader(specificNode);

    while (specificNodeReader.Read())
    {
        Console.WriteLine(specificNodeReader.Value);
    }
}

node , , , , . .

+3

XmlTextReader XmlTextWriter. .

XmlDocument

XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(xmlDocument.OuterXml));

,

XmlValidatingReader xmlValidatingReader = new XmlValidatingReader(xmlTextReader);
+1

Have you tried looking for LINQ to XML?

0
source

Source: https://habr.com/ru/post/1771695/


All Articles