zoukankan      html  css  js  c++  java
  • 关于如何读取XML文件的一个简单方法

    在平时开发系统功能的时候,我们经常会碰到一些需求需要经常性的发生变化,比如 系统版本、更新日志 等等。这个时候用一个XML文件来替代数据库,就会变的简便很多。

    前段时候我也正好需要改个需求,是关于客户公司年假的设置,大致需求是这样的:

    年假规定:公司员工入职满一年后,方可享受带薪年假,具体如下:
    1档: 连续服务满1年以上不满2年,每年可享受2个工作日。
    2档:连续服务满2年以上不满5年, 每年可享受3个工作日。
    3档:连续服务满5年以上不满8年, 每年可享受6个工作日。
    4档:连续服务满8年以上,每年可享受10个工作日。
     
    需求很简单,但以上条件很有可能会变化, 所以我就想到了用读取XML文件的方式去存储这些“条件”。
    废话少说,直接上代码:
     
    1、YearLeaveConfig.xml(特别注意:XML文件里的标签首字母必须是大写的
    <?xml version="1.0"?>
    <YearLeaveConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <!--下列标签首字母必须大写-->
      <LeaveItems>
        <LeaveItem>
          <YearStart>0</YearStart>
          <YearEnd>1</YearEnd>
          <LeaveDay>0</LeaveDay>
        </LeaveItem>
    
        <LeaveItem>
          <YearStart>1</YearStart>
          <YearEnd>2</YearEnd>
          <LeaveDay>2</LeaveDay>
        </LeaveItem>
    
        <LeaveItem>
          <YearStart>2</YearStart>
          <YearEnd>5</YearEnd>
          <LeaveDay>3</LeaveDay>
        </LeaveItem>
    
        <LeaveItem>
          <YearStart>5</YearStart>
          <YearEnd>8</YearEnd>
          <LeaveDay>6</LeaveDay>
        </LeaveItem>
    
        <LeaveItem>
          <YearStart>8</YearStart>
          <YearEnd>100</YearEnd>
          <LeaveDay>10</LeaveDay>
        </LeaveItem>
        
      </LeaveItems>
    </YearLeaveConfig>

    2、实体类

    public class LeaveItem
        {
            public int YearStart { get; set; }
            public int YearEnd { get; set; }
            public int LeaveDay { get; set; }
        }
    
        public class YearLeaveConfig
        {
            public LeaveItem[] LeaveItems { get; set; }
        }

    3、读取XML

    static void Main(string[] args)
            {
                string strPth = Environment.CurrentDirectory;
                YearLeaveConfig yearLeave = (YearLeaveConfig)new XmlSerializer(typeof(YearLeaveConfig)).Deserialize(new FileStream(strPth + @"YearLeaveConfig.xml", FileMode.Open));
    
                foreach (LeaveItem item in yearLeave.LeaveItems)
                {
                    Console.WriteLine(string.Format("年假设置:{0}~~{1}年的享受年假:{2}天",item.YearStart,item.YearEnd,item.LeaveDay));
                    
                }
                Console.Read();
    
            }

     DEMO下载

  • 相关阅读:
    XX需求分析系统每日进度(二)
    XX需求分析系统每日进度(一)
    周总结(二)
    Hyperleder Fabric chaincode生命周期
    【转】六种学术不端的引用行为
    引导学生,让学生不走神。
    MySQL 的常用引擎
    LeetCode283移动零问题java高效解法
    使用android studio进行springboot项目的开发
    android逆向反编译工具包下载
  • 原文地址:https://www.cnblogs.com/zhangliangzlee/p/XML.html
Copyright © 2011-2022 走看看