解析XML并保存到对象中

我想解析一个XML文件并将此信息保存到对象中。 做这个的最好方式是什么? 请告诉我。

谢谢..

如果您使用的是.Net 3.5,我建议使用LINQ-To-XML。

一个简单的例子……

XML文件

    ABC   111111  
asdfg

LINQ查询

 XDocument doc = XDocument.Load(pathToFile); var query = from d in doc.Root.Descendants("Person") select d; foreach (var q in query) { string name = q.Element("Name").Value; string ssn = q.Element("SSN").Value; string address = q.Element("Address").Value; } 

您可以使用XmlSerializer对其进行反序列化。

 using System; using System.IO; using System.Xml.Serialization; [XmlRoot("Root")] public class MyType { [XmlElement("Id")] public string Id { get; set; } [XmlElement("Name")] public string Name { get; set; } } static class Program { static void Main() { string xml = @" 1 The Name "; MyType obj = (MyType) new XmlSerializer(typeof(MyType)) .Deserialize(new StringReader(xml)); Console.WriteLine(obj.Id); Console.WriteLine(obj.Name); } }; 
  1. 获取模式(或xml文件)并使用xsd.exe生成一个类。 生成的代码很难看,您可能需要手动清理它。
  2. 使用XmlSerializer反序列化为实例。

此方法优于其他方法的优点是您获得了一个强类型对象(以及IntelliSense处理您的对象)。 除此之外,它意味着“节点查找”比其他解决方案(主要使用字典)更快。

或者您可以尝试使用C#4.0的动态关键字,它可以让您选择避免生成代码并在运行时反序列化。 虽然我不确定。 这样你就失去了强大的输入,但保留了语法。