XML字符串转换成List

前端之家收集整理的这篇文章主要介绍了XML字符串转换成List前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. package testJava.ari;
  2.  
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9.  
  10. public class XML字符串转换成List {
  11.  
  12. /**
  13. * gefei add 2013-7-16 15:01:36
  14. *
  15. * @param args
  16. * @throws Exception
  17. */
  18. public static void main(String[] args) throws Exception {
  19. String out_param = "<dataout><Count>2</Count><PowerOffArea>江宁区1</PowerOffArea><TypeCode>01</TypeCode><StartTime>20130726 08:30:00</StartTime><StopTime>20130726 12:30:00</StopTime><ScopeLen>270</ScopeLen><Scope>1山凹站</Scope><PowerOffArea>江宁区2</PowerOffArea><TypeCode>01</TypeCode><StartTime>20130726 08:30:00</StartTime><StopTime>20130726 12:30:00</StopTime><ScopeLen>270</ScopeLen><Scope>2山凹站</Scope></dataout>";
  20. List l = convertResXMLToList(out_param);
  21. String cur_date = "20130716 15:41:10";
  22. for(int i=0;i<l.size();++i){
  23. System.out.println("PowerOffArea="+((Map)l.get(i)).get("PowerOffArea"));
  24. System.out.println("TypeCode="+((Map)l.get(i)).get("TypeCode"));
  25. System.out.println("StartTime="+((Map)l.get(i)).get("StartTime"));
  26. System.out.println("StopTime="+((Map)l.get(i)).get("StopTime"));
  27. System.out.println("ScopeLen="+((Map)l.get(i)).get("ScopeLen"));
  28. System.out.println("Scope="+((Map)l.get(i)).get("Scope"));
  29. }
  30. System.out.println("在之间="+isBetStaAndStoTime("20130715 15:41:10","20130717 15:41:10",cur_date));
  31. System.out.println("在之间="+isBetStaAndStoTime("20130716 15:40:10","20130716 15:41:10",cur_date));
  32. System.out.println("不在之间="+isBetStaAndStoTime("20130714 15:40:10","20130715 15:41:11",cur_date));
  33. System.out.println("不在之间="+isBetStaAndStoTime("20130717 15:40:10","20130717 15:41:11",cur_date));
  34. }
  35. /**
  36. * 把xml格式的字符串转换成List<Map> 【停限电告知专用】
  37. * @param xmlParam xml格式的字符串
  38. * @return List<Map>
  39. */
  40. public static List<Map> convertResXMLToList(String out_param) {
  41. List<Map> xmlList = new ArrayList<Map>();
  42. int all_count = 0;// 地市级停电告知的总条数
  43. if(out_param.indexOf("<Count>") != -1){
  44. all_count = Integer.parseInt(out_param.substring(out_param.indexOf("<Count>")+7,out_param.indexOf("</Count>")).toString().trim());
  45. System.out.println("总条数="+all_count);
  46. }
  47. if(all_count > 0){
  48. for(int i=0;i<all_count;++i){
  49. Map xmlMap = new HashMap();
  50. // 有缺陷 永远是第一次
  51. xmlMap.put("PowerOffArea",out_param.substring(out_param.indexOf("<PowerOffArea>")+14,out_param.indexOf("</PowerOffArea>")).toString());
  52. xmlMap.put("TypeCode",out_param.substring(out_param.indexOf("<TypeCode>")+10,out_param.indexOf("</TypeCode>")).toString());
  53. xmlMap.put("StartTime",out_param.substring(out_param.indexOf("<StartTime>")+11,out_param.indexOf("</StartTime>")).toString());
  54. xmlMap.put("StopTime",out_param.substring(out_param.indexOf("<StopTime>")+10,out_param.indexOf("</StopTime>")).toString());
  55. xmlMap.put("ScopeLen",out_param.substring(out_param.indexOf("<ScopeLen>")+10,out_param.indexOf("</ScopeLen>")).toString());
  56. xmlMap.put("Scope",out_param.substring(out_param.indexOf("<Scope>")+7,out_param.indexOf("</Scope>")).toString());
  57. out_param = out_param.substring(out_param.indexOf("</Scope>")+8,out_param.length());
  58. xmlList.add(xmlMap);
  59. }
  60. }
  61. return xmlList;
  62. }
  63. /**
  64. * 判断当前时间是否在停电开始和结束时间之内
  65. * @param StartTime 停电开始时间
  66. * @param StopTime 停电结束时间
  67. * @return true=在之间 false=不在之间
  68. * @throws Exception
  69. */
  70. public static boolean isBetStaAndStoTime(String StartTime,String StopTime,String curTime) throws Exception{
  71. boolean isFlag = false;// 默认当前日期不在开始和结束时间之间
  72. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
  73. Date d1 = sdf.parse(StartTime);// 停电开始时间
  74. Date d2 = sdf.parse(StopTime);// 停电结束时间
  75. Date d3 = sdf.parse(curTime);// 当前时间
  76. long l1 = d1.getTime();// 开始
  77. long l2 = d2.getTime();// 结束
  78. long l3 = d3.getTime();// 当前
  79. if(l3 >= l1 && l3 <= l2){
  80. isFlag = true; // 当前日期在开始和结束时间之间
  81. }
  82. return isFlag;
  83. }
  84. }
  85.  

猜你在找的XML相关文章