如何在C#中读取XML Document对象?

时间:2010-10-27 11:19:04

标签: c# xml

在可视化C#项目中,我想将XML文档对象传递给方法。在该方法中,我应该读取我存储在XML Document对象中的值。无需创建XML文件。

感谢回复人员,我终于得到了我的代码。

    //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);
              }

在上面的代码中,我们创建了XML对象,现在我们可以传递Xml对象。

//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 个答案:

答案 0 :(得分:3)

您可以使用XmlNodeReader访问XmlDocument中的元素。

根据您对XmlDocument 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

- 编辑 -

详细说明XmlNode specificNode = document.SelectSingleNode("/NodeName/ChildNodeName"); if (specificNode != null) { XmlNodeReader specificNodeReader = new XmlNodeReader(specificNode); while (specificNodeReader.Read()) { Console.WriteLine(specificNodeReader.Value); } } 的可能性。您还可以选择特定节点并进行处理。

使用,您可以在下面访问特定的节点值。

{{1}}

示例将这些节点值写出到控制台,但是,您可以更改此值以将值写入变量。灵活性就在那里。

答案 1 :(得分:1)

我喜欢使用XmlTextReader和XmlTextWriter。它们非常易于使用。

请参阅this链接

修改

要使用XmlDocument,请使用

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

如果您想使用验证,请使用

XmlValidatingReader xmlValidatingReader = new XmlValidatingReader(xmlTextReader);

答案 2 :(得分:0)

您是否尝试过查看LINQ to XML?