首页 > 后端开发 > C++ > 如何将XML文档当作C#对象?

如何将XML文档当作C#对象?

Barbara Streisand
发布: 2025-02-02 17:36:10
原创
780 人浏览过

How to Deserialize XML Documents into C# Objects?

.NET环境下XML文档的反序列化详解

在.NET应用程序中处理XML文档时,经常需要将XML文档反序列化为C#对象。此过程涉及将XML数据转换为相应的C#表示形式。

示例XML文档

考虑以下包含各种汽车信息的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>
登录后复制

定义C#类

为了反序列化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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板