android xml产生和解析

    public static void writeToXml(Map<String, Object> map,Writer writer) throws Exception, IllegalStateException, IOException{ 
        XmlSerializer serializer = Xml.newSerializer(); 
        serializer.setOutput(writer); 
     serializer.startDocument("UTF-8", true); 
     serializer.startTag(null, "condition");   
     for(Entry<String, Object> entry:map.entrySet()){
             serializer.startTag(null, entry.getKey()); 
             serializer.text(entry.getValue().toString()); 
             serializer.endTag(null,  entry.getKey()); 
     }
       serializer.startTag(null, "condition");  
    serializer.endDocument(); 
    writer.flush(); 
    writer.close(); 
  }  

 

 

	public static List<Map<String, Object>> getNurseInfo(String in, String format)
			throws Exception {
		InputStream inputstream = XjxPublicUnit.StringTOInputStream(in, format);

		return getNurseInfotomap(inputstream);

	}

	public static List<NurseInfo> getNurseInfo(InputStream xml)
			throws Exception {
		List<NurseInfo> myNurseInfos = null;    
		NurseInfo myNurseInfo = null;

		XmlPullParser pullParser = Xml.newPullParser();
		pullParser.setInput(xml, "UTF-8"); // 为Pull解释器设置要解析的XML数据
		int event = pullParser.getEventType();
		while (event != XmlPullParser.END_DOCUMENT) {

			switch (event) {

			case XmlPullParser.START_DOCUMENT:
				if (myNurseInfo == null) {
					myNurseInfo = new NurseInfo();
				}
				myNurseInfos = new ArrayList<NurseInfo>();//初始化集合   
				break;
			case XmlPullParser.START_TAG:
				
				if (myNurseInfo == null && "row".equals(pullParser.getName())) {
					myNurseInfo = new NurseInfo();
				}
				
				if ("jlid".equals(pullParser.getName())) {
					myNurseInfo.setJlid(pullParser.nextText());
				}
				
			
				if ("lsh".equals(pullParser.getName())) {
					myNurseInfo.setLsh(pullParser.nextText());
				}
				
				if ("rqsj".equals(pullParser.getName())) {
					myNurseInfo.setRqsj(pullParser.nextText());
				}
			

				if ("s".equals(pullParser.getName())) {
					myNurseInfo.setS(pullParser.nextText());
				}
				
				if ("f".equals(pullParser.getName())) {
					myNurseInfo.setF(pullParser.nextText());
				}
			
				

				if ("JLR".equals(pullParser.getName())) {
					myNurseInfo.setJlr(pullParser.nextText());
					}
				
				if ("bbreathingmachine".equals(pullParser.getName())) {
					myNurseInfo.setBbreathingmachine(pullParser.nextText());
				}
				
				if ("hx".equals(pullParser.getName())) {
					myNurseInfo.setHx(pullParser.nextText());
				}
				if ("sz".equals(pullParser.getName())) {
					myNurseInfo.setSz(pullParser.nextText());
				}
				if ("xybhd".equals(pullParser.getName())) {
					myNurseInfo.setXybhd(pullParser.nextText());
				}
				if ("tk_y".equals(pullParser.getName())) {
					myNurseInfo.setTk_y(pullParser.nextText());
				}
				
				
				if ("tk_z".equals(pullParser.getName())) {
					myNurseInfo.setTk_z(pullParser.nextText());
				}
				if ("dgfs_y".equals(pullParser.getName())) {
					myNurseInfo.setDgfs_y(pullParser.nextText());
				}
				if ("dgfs_z".equals(pullParser.getName())) {
					myNurseInfo.setDgfs_z(pullParser.nextText());
				}
				
				
				if ("rl_mc".equals(pullParser.getName())) {
					myNurseInfo.setRl_mc(pullParser.nextText());
				}
				if ("rllx".equals(pullParser.getName())) {
					myNurseInfo.setRllx(pullParser.nextText());
				}
				if ("rl_l".equals(pullParser.getName())) {
					myNurseInfo.setRl_l(pullParser.nextText());
				}
				
				
				if ("cl_mc".equals(pullParser.getName())) {
					myNurseInfo.setCl_mc(pullParser.nextText());
				}
				if ("rllx".equals(pullParser.getName())) {
					myNurseInfo.setCllx(pullParser.nextText());
				}
				if ("cl_l".equals(pullParser.getName())) {
					myNurseInfo.setCl_l(pullParser.nextText());
				}
				
				if ("rank".equals(pullParser.getName())) {
					myNurseInfo.setRank(pullParser.nextText());
				}
				break;
			case XmlPullParser.END_TAG:
				if ("row".equals(pullParser.getName())){
					myNurseInfos.add(myNurseInfo);//将book添加到books集合    
		            myNurseInfo = null;    
				}
			}
			event = pullParser.next();
		}

		return myNurseInfos;
	}
	public static List<Map<String, Object>> getNurseInfotomap(InputStream inputStream) throws Exception {
		List<Map<String, Object>> myNurseInfos = null;
		Map<String, Object> myNurseInfo = null;
		 
		XmlPullParser parser = Xml.newPullParser();    
		parser.setInput(inputStream, "UTF-8");    

		int event = parser.getEventType();//产生第一个事件  
		
		while(event!=XmlPullParser.END_DOCUMENT){   
			switch(event){  
			  case XmlPullParser.START_DOCUMENT://判断当前事件是否是文档开始事件    
				  myNurseInfos = new ArrayList<Map<String, Object>>();
				  break;    
			  case XmlPullParser.START_TAG://判断当前事件是否是标签元素开始事件    
				  if("row".equals(parser.getName())){//判断开始标签元素是否是book    
					  myNurseInfo = new HashMap<String, Object>();      
                  }  
				  if(myNurseInfo!=null){  
					  if (!("row".equals(parser.getName()))){//判断开始标签元素是否是jlid    
						  myNurseInfo.put(parser.getName(),parser.nextText()); 
					  } 
				  }
				  break; 
			  case XmlPullParser.END_TAG://判断当前事件是否是标签元素结束事件  
				  if("row".equals(parser.getName())){//判断结束标签元素是否是book    
					  myNurseInfos.add(myNurseInfo);//将book添加到books集合    
					  myNurseInfo = null;    
					  }    
					  break;
                }    
                 event = parser.next();//进入下一个元素并触发相应事件    
		      }//end while 
		     return myNurseInfos;  
			}






package com.xjx.unit;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

public class XjxPublicUnit {

	 public static InputStream StringTOInputStream(String in,String strFormat) throws Exception{  
	        
	        ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes(strFormat));  
	        return is;  
	    }  
}

  

posted @ 2014-07-31 10:35  欧克  阅读(215)  评论(0编辑  收藏  举报