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; } }