在.NET应用程序中处理XML文档时,经常需要将XML文档反序列化为C#对象。此过程涉及将XML数据转换为相应的C#表示形式。
考虑以下包含各种汽车信息的XML文档:
<?xml version="1.0" encoding="utf-8"?><cars><car><stocknumber>1020</stocknumber><make>Nissan</make><model>Sentra</model></car><car><stocknumber>1010</stocknumber><make>Toyota</make><model>Corolla</model></car><car><stocknumber>1111</stocknumber><make>Honda</make><model>Accord</model></car></cars>
为了反序列化XML文档,我们需要定义表示XML结构的C#类。创建两个类:
Car类:表示单个汽车的详细信息。
[Serializable()] public class Car { [System.Xml.Serialization.XmlElementAttribute("StockNumber")] public string StockNumber{ get; set; } [System.Xml.Serialization.XmlElementAttribute("Make")] public string Make{ get; set; } [System.Xml.Serialization.XmlElementAttribute("Model")] public string Model{ get; set; } }
Cars类:表示XML文档的根元素,包含一个Car对象的数组。
[System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)] public class Cars { [XmlArrayItem(typeof(Car))] public Car[] Car { get; set; } }
要反序列化XML文档,请创建一个包含Deserialize方法的CarSerializer类:
public class CarSerializer { public Cars Deserialize() { string path = HttpContext.Current.ApplicationInstance.Server.MapPath("~/App_Data/") + "cars.xml"; using (XmlReader reader = XmlReader.Create(path)) { XmlSerializer ser = new XmlSerializer(typeof(Cars)); Cars cars = (Cars)ser.Deserialize(reader); return cars; } } }
此方法加载XML文档,使用XmlSerializer将其转换为Cars对象,并返回反序列化的数据。
现在,您可以使用Deserialize方法获取反序列化的Cars对象,然后访问它来操作和检索有关汽车的信息。
以上是如何将XML文档当作C#对象?的详细内容。更多信息请关注PHP中文网其他相关文章!