C# xml 转 list 对象

摘要:
出处:https://blog.csdn.net/hanna_123/article/details/79229368高三一班1学霸爱因斯坦男18˂/studen

出处:https://blog.csdn.net/hanna_123/article/details/79229368

<classes>
  <class>
    <classname>高三一班</classname>
    <id>1</id>
    <remark>学霸</remark>
    <students>
      <student>
        <name>爱因斯坦</name>
        <sex>男</sex>
        <age>18</age >
      </student>
        <student>
          <name>牛顿</name>
          <sex>男</sex>
          <age>18</age >
        </student>   
    </students>
  </class>
  <class>
    <classname>高三Ⅹ班</classname>
    <id>1</id>
    <remark>渣渣</remark>
    <students>
      <student>
        <name>特朗普</name>
        <sex>男</sex>
        <age>18</age >
      </student>
      <student>
        <name>本</name>
        <sex>男</sex>
        <age>18</age >
      </student>
    </students>
  </class>
</classes>

C# 类

[Serializable, XmlType("class")]
    public class ClassSet
    {
        [XmlElement("classname")]
        public string Name { get; set; }
 
        [XmlElement("id")]
        public int Id { get; set; }
 
        [XmlElement("remark")]
        public string Remark { get; set; }
 
        [XmlArray("students")]
        public List<Student> Students { get; set; }
 
        [Serializable, XmlType("student")]
        public class Student
        {
            [XmlElement("name")]
            public string Name { get; set; }
 
            [XmlElement("sex")]
            public string Sex { get; set; }
 
            [XmlElement("age")]
            public int Age { get; set; }
 
        }
    }

C# XmlToList

public static List<T> XmlToList<T>(string xml,string rootName) where T : class
        {
            XmlSerializer serializer = new XmlSerializer(typeof(List<T>), new XmlRootAttribute(rootName));
            using (StringReader sr = new StringReader(xml))
            {
                List<T> list = serializer.Deserialize(sr) as List<T>;
                return list;
            }                
        }

调用

XmlToList<ClassSet>(xml, "classes")

免责声明:文章转载自《C# xml 转 list 对象》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle WIHT AS 用法Linux关机命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1

3 MATLAB2009之后,并行计算工具箱和并行计算服务退出。通过PCT和DCS,用户可以实现基于多核平台、多处理器平台和集群平台的多个并行计算任务。除了支持上述通用功能外,PCT还增加了对GPU单元的支持。现在来看彼此已经太晚了:用parfor并行化for循环。在编程中,使计算量最小化的代码总是一个循环。7 parpool命令在不启动并行池的情况下配置并...

sikuli简介

Sikuli脚本自动化,你在屏幕上看到的任何东西。Sikuli是一个开放源码的最初的用户界面设计组织在麻省理工学院的研究项目。现在是保持并进一步协调与开源社区开发的Sikuli实验室在美国科罗拉多州博尔德大学。Sikuli的MIT许可证下发布的。当然,你也可以使用sikuli的javaAPI使其在java环境下运行。小例子大体上了解sikuli的界面,下面来...

【资料】2021年最网红的FPGA开发板之一——DE10-Nano (SOC FPGA入门推荐!)

DE10 Nano开发板是2021最受欢迎的FPGA开发板之一。除了广泛应用于物联网、边缘计算、硬件加速、AI和EDA教育课程之外,许多爱好者还在网络上日益流行的开源复古游戏项目Mister中使用它。让我们来看看DE10 Nano提供的材料:Youjing官方网站上的材料(中文手册可用!!!23~课程培训材料2018产学合作培训材料基于2018产学协作培训材...

华为交换机堆叠配置

请参考华为交换机的配置堆栈。[Leaf1-stack-port0/1]portinterfaceg0/0/12启用物理接口12加入堆栈组[Leaf1]stackslot0priority255修改优先级255,默认值为100警告:不要频繁修改优先级,因为它会使堆栈分裂。持续...

excel下划线转驼峰公式

最近,为了避免麻烦,我决定生成jquery的json对象结构。数据表。下划线应变成驼峰,如下所示:=LEFT&MID...

Sublime Text3注册激活和部分配置

此时,我们可以输入要安装的插件包ConvertToUTF85。设置中文对齐方式、字体等//设置默认代码“default_encoding”:“UTF-8”,//显示代码“show_encoding”:true,//显示行号“show_line_endings”:true,//设置字号“font_size”:14,//设置字体对齐方式“font_options...