当前位置: 首页 > news >正文

XML文件反序列化读取

原始XML文件

<?xml version="1.0" encoding="utf-8" ?>
<School headmaster="王校长"><Grade grade="12" teacher="张老师"><Student name="小米" age="18"/><Student name="小明" age="19"/><Student name="小蜜" age="17"/><Student name="小敏" age="16"/><Student name="小马" age="18"/></Grade><Grade grade="1" teacher="李老师"><Student name="小红" age="8"/><Student name="小洪" age="9"/><Student name="小猴" age="7"/><Student name="肖红" age="6"/><Student name="小虹" age="8"/></Grade>
</School>

代码

Program.cs

namespace ConsoleApp6SerializeXml
{internal class Program{static void Main(string[] args){DirectoryInfo path = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);StreamReader text = new StreamReader(path.Parent.Parent.FullName + "\\testxml.xml");XmlSerializer serializer = new XmlSerializer(typeof(School));School school = serializer.Deserialize(text) as School;Console.WriteLine(school.headmaster);foreach (Grade grade in school.grades){Console.WriteLine(grade.grade);Console.WriteLine(grade.teacher);foreach (Student student in grade.students){Console.WriteLine(student.name);Console.WriteLine(student.age);}}Console.ReadKey();}}
}

School.cs

namespace ConsoleApp6SerializeXml
{[XmlRoot("School")]public class School{[XmlAttribute("headmaster")]public string headmaster { get; set; }[XmlElement("Grade")]public List<Grade> grades { get; set; }}
}

Grade.cs

namespace ConsoleApp6SerializeXml
{public class Grade{[XmlAttribute("grade")]public int grade { get; set; }[XmlAttribute("teacher")]public string teacher { get; set; }[XmlElement("Student")]public List<Student> students { get; set; }}
}

Student.cs

namespace ConsoleApp6SerializeXml
{public class Student{[XmlAttribute("name")]public string name { get; set; }[XmlAttribute("age")]public int age { get; set; }}
}

结果

http://www.lryc.cn/news/176863.html

相关文章:

  • 会议剪影 | 思腾合力受邀参加2023第二届世界元宇宙大会并作主题演讲
  • 加密算法、哈希算法及其区别+国密简介
  • LeetCode算法二叉树—222. 完全二叉树的节点个数
  • Scrapy-应对反爬虫机制
  • Direct3D字体
  • 麒麟软件操作系统下载
  • ARM---实现1-100求和任务
  • Vue+Three.js实现三维管道可视化及流动模拟续集
  • 基于Xilinx UltraScale+ MPSOC(ZU9EG/ZU15EG)的高性能PCIe数据预处理平台
  • IMX6ULL ARM Linux开发板SD卡启动,SD卡的分区与分区格式化创建
  • 去哪里找图标?
  • Js数组去重都有哪些方法?
  • Vue简单使用
  • 2309C++nlohmann数格示例2
  • 企业沟通平台私有部署,让沟通更高效数据更安全
  • Java流的体系结构(一)
  • 什么是Redux?它的核心概念有哪些?
  • 细胞机器人系统中的群体智能
  • 【办公自动化】用Python将PDF文件转存为图片(文末送书)
  • 不容易解的题9.26
  • 易点易动固定资产管理系统:精准管理与科学采购,降本增效的利器
  • 人大金仓分析型数据库外部表(二)
  • rtp流广播吸顶喇叭网络有源吸顶喇叭
  • Spring学习笔记12 面向切面编程AOP
  • 【0225】源码分析postgres磁盘块(disk block)定义
  • 第九章 动态规划 part11 123. 买卖股票的最佳时机III 188. 买卖股票的最佳时机IV
  • 阿里云服务器共享型和企业级独享有什么区别?
  • Vue.js基本语法上
  • 【1333. 餐厅过滤器】
  • wifi7有关的210个提案