《移动端签到》——用XML灵活配置变量
来源:互联网 发布:excel数据筛选按钮 编辑:程序博客网 时间:2024/06/05 16:45
公司的考勤功能这就要上线,在签到这个模块中,由于签到功能只能在公司内部使用,也就是在一个固定的范围内使用,没有像钉钉那样有外勤签到,随着版本的升级,有一个这样的需求,每个公司的地理位置不同(经纬度就不同),公司的上下班时间不同,而且这些东西有可能是变化的,这就导致了统计签到记录的信息不同。
以前这些信息时写死的,不容易变更,本来我想在数据库中设计一张表来维护这些变量,当然,只有管理员才可以维护,但是为了节省访问时间,我就将这一些信息写在了XML里面,这样一来,在某些情况下程序读XML的速度肯定比读取数据库的速度要快,但是要是维护数据,只能修改XML了,不能再手机APP页面上直接操纵了,嗨,鱼和熊掌不可兼得啊!
下面展示一下我的代码
1、 XML存放数据代码
<?xml version="1.0" encoding="utf-8" ?><workMessage> <Field>100</Field> <item> <id>beijing</id> <ontime>08:30:00</ontime> <offtime>17:30:00</offtime> <lng>116.605454512445</lng> <lat>31.4554521245455</lat> </item> <item> <id>xian</id> <ontime>09:00:00</ontime> <offtime>18:00:00</offtime> <lng>128.5454212545458</lng> <lat>64.787445245457841</lat> </item></workMessage><span style="font-family:SimSun;font-size:18px;"> </span>
2、 实体类
public class WorkMessages { private string id; public string Id { get { return id; } set { id = value; } } private string ontime; public string OnTime { get { return ontime; } set { ontime = value; } } private string offtime; public string OffTime { get { return offtime; } set { offtime = value; } } private double lat; public double Lat { get { return lat; } set { lat = value; } } private double lng; public double Lng { get { return lng; } set { lng = value; } } public WorkMessages() { } public WorkMessages(string id, string ontime, string offtime,double lat,double lng) { this.Id = id; this.OnTime = ontime; this.OffTime = offtime; this.Lat = lat; this.Lng = lng; }
3、 读取XML中的信息
public List<WorkMessages> QueryWorkMessages() { List<WorkMessages> list = new List<WorkMessages>(); XmlDocument xml = new XmlDocument(); xml = XmlManager(HttpContext.Current.Server.MapPath("../XmlConfig/Punch.xml")); string id = ""; string ontime = ""; string offtime = ""; double lat = 0.00; double lng = 0.00; WorkMessages info = null; //////////*******下面开始循环读取xml文件信息********/ foreach (XmlNode node in xml.ChildNodes) { if (node.Name == "workMessage") { foreach (XmlNode node1 in node.ChildNodes) { if (node1.Name == "item") { foreach (XmlNode node2 in node1.ChildNodes) { switch (node2.Name) { case "id": id = node2.InnerText; break; case "ontime": ontime = node2.InnerText; break; case "offtime": offtime = node2.InnerText; break; case "lat": lat = Convert.ToDouble(node2.InnerText); break; default: lng = Convert.ToDouble(node2.InnerText); break; } } info = new WorkMessages(id, ontime, offtime, lat, lng); //将信息保存至集合 list.Add(info); } } } } return list; }
4、 根据路径加载XML
public XmlDocument XmlManager(string strUrlPath) { XmlDocument xmlDocument = new XmlDocument(); if (!File.Exists(strUrlPath)) { throw new Exception("指定的文件路径错误 请重新指定"); } try { xmlDocument.Load(strUrlPath); } catch { throw new Exception("加载XML文档时发生错误"); } return xmlDocument; }
小结
用XML代替数据库适合存储比较轻量级的数据,这里我用XML代替数据库的好处是操作简单,访问速度快,缺点是维护困难,需要打开代码往XML中手动添加数据。提醒一下,根据路径读取XML时,XML的路径最好写成相对路径,别写成绝对路径,比如说路径为C:\pagage\punch.xml,如果写成这样,当把程序发布到服务器上的时候程序再读xml有可能就报错了。
0 0
- 《移动端签到》——用XML灵活配置变量
- 《移动端签到》——统计
- 《移动端签到》——利用 JavaScript API实现定位
- jq移动端日历签到
- 移动签到
- 签到日历——待续
- rem灵活移动端适配
- kettle xml 读取配置变量
- 用灵活的指针访问类私有变量
- MISC杂项签到——writeup
- 我的Android案例—签到日历
- 我的Android案例—签到日历
- 第三章 强大而又灵活——灵活网页布局
- 项目中的问题总结——签到取连续签到次数
- NHibernate的灵活配置
- NHibernate的灵活配置
- NHibernate的灵活配置
- NHibernate的灵活配置
- java代理
- 深入学习JVM内存设置原理和调优
- 数据结构--堆栈
- SQLyog常用快捷键
- 脉络清晰的BP神经网络讲解
- 《移动端签到》——用XML灵活配置变量
- 关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题。
- Hibernate-Criteria查询(1)
- 关于浏览器的回退事件
- Linux命令学习
- 强悍的 Linux —— Linux 中 TTY 是什么意思
- 10grac修改public-ip vip-ip
- leetcode 73. Set Matrix Zeroes-矩阵置零|数组
- C#队列(Queue)