XML字符串转换成List

package testJava.ari;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class XML字符串转换成List {

 /**
  * gefei add 2013-7-16 15:01:36
  * 
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception {
  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>";
  List l = convertResXMLToList(out_param);
  String cur_date = "20130716 15:41:10";
  for(int i=0;i<l.size();++i){
   System.out.println("PowerOffArea="+((Map)l.get(i)).get("PowerOffArea"));
   System.out.println("TypeCode="+((Map)l.get(i)).get("TypeCode"));
   System.out.println("StartTime="+((Map)l.get(i)).get("StartTime"));
   System.out.println("StopTime="+((Map)l.get(i)).get("StopTime"));
   System.out.println("ScopeLen="+((Map)l.get(i)).get("ScopeLen"));
   System.out.println("Scope="+((Map)l.get(i)).get("Scope"));
  }
  System.out.println("在之间="+isBetStaAndStoTime("20130715 15:41:10","20130717 15:41:10",cur_date));
  System.out.println("在之间="+isBetStaAndStoTime("20130716 15:40:10","20130716 15:41:10",cur_date));
  System.out.println("不在之间="+isBetStaAndStoTime("20130714 15:40:10","20130715 15:41:11",cur_date));
  System.out.println("不在之间="+isBetStaAndStoTime("20130717 15:40:10","20130717 15:41:11",cur_date));
 }
 
 /**
  * 把xml格式的字符串转换成List<Map> 【停限电告知专用】
  * @param xmlParam xml格式的字符串
  * @return List<Map>
  */
 public static List<Map> convertResXMLToList(String out_param) {
  List<Map> xmlList = new ArrayList<Map>();
  int all_count = 0;// 地市级停电告知的总条数
  
  if(out_param.indexOf("<Count>") != -1){
   all_count = Integer.parseInt(out_param.substring(out_param.indexOf("<Count>")+7,out_param.indexOf("</Count>")).toString().trim());
   System.out.println("总条数="+all_count);
  }
  if(all_count > 0){
   for(int i=0;i<all_count;++i){
    Map xmlMap = new HashMap();
    // 有缺陷  永远是第一次
    xmlMap.put("PowerOffArea",out_param.substring(out_param.indexOf("<PowerOffArea>")+14,out_param.indexOf("</PowerOffArea>")).toString());
    xmlMap.put("TypeCode",out_param.substring(out_param.indexOf("<TypeCode>")+10,out_param.indexOf("</TypeCode>")).toString());
    xmlMap.put("StartTime",out_param.substring(out_param.indexOf("<StartTime>")+11,out_param.indexOf("</StartTime>")).toString());
    xmlMap.put("StopTime",out_param.substring(out_param.indexOf("<StopTime>")+10,out_param.indexOf("</StopTime>")).toString());
    xmlMap.put("ScopeLen",out_param.substring(out_param.indexOf("<ScopeLen>")+10,out_param.indexOf("</ScopeLen>")).toString());
    xmlMap.put("Scope",out_param.substring(out_param.indexOf("<Scope>")+7,out_param.indexOf("</Scope>")).toString());
    
    out_param = out_param.substring(out_param.indexOf("</Scope>")+8,out_param.length());
    xmlList.add(xmlMap);
   }
  }
  
  return xmlList;
 }
 
 /**
  * 判断当前时间是否在停电开始和结束时间之内
  * @param StartTime 停电开始时间
  * @param StopTime 停电结束时间
  * @return true=在之间  false=不在之间
  * @throws Exception 
  */
 public static boolean isBetStaAndStoTime(String StartTime,String StopTime,String curTime) throws Exception{
  boolean isFlag = false;// 默认当前日期不在开始和结束时间之间
  
  SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
  Date d1 = sdf.parse(StartTime);// 停电开始时间
  Date d2 = sdf.parse(StopTime);// 停电结束时间
  Date d3 = sdf.parse(curTime);// 当前时间
  
  long l1 = d1.getTime();// 开始
  long l2 = d2.getTime();// 结束
  long l3 = d3.getTime();// 当前
  if(l3 >= l1 && l3 <= l2){
   isFlag = true; // 当前日期在开始和结束时间之间
  }
  
  return isFlag;
 }
 
}

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念