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

  

android xml产生和解析

时间: 2024-09-29 02:06:07

android xml产生和解析的相关文章

Android——xml文件的解析

解析方法:DOM.SAX.PULL DOM:将xml转化为树进行遍历 public void DOMParser() {     try {       // 1.创建DocumentBuilder实例       DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();        // 2.创建Document实例 Document doc = builder.parse(fil

android XML动画初步解析(activity界面之间跳转demo)

上一篇文章android 简单地设置Activity界面的跳转动画讲了简单的activity界面之间的跳转,并且使用的是android内置的一些动画,此章就小提一下如何自己写一些动画来进行跳转. 按例,还是上一下效果:(结尾附上源码)     要自己写动画,首先要对动画的一些属性有一定了解: interpolator:被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等. an

Android解析XML之SAX解析器

SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理.在事件源调用事件处理器中特定方法的时候,还要传递给事件处理器相应事件的状态信息,这样事件处理器才能够根据提供的事件信息来决定自己的行为. SAX解析器的优点是解析速度快,占用内存少.非常适合在Android移动设备中使用. SAX相关类及API DefaultHandler:是一个事

Android下使用pull解析器生成XML文件、读取XML文件

Android下使用Pull解析器 1,Pull解析器的运行方式与SAX解析器相似.它提供了类似的事件,如:开始元素和结束元素事件. 2,使用parser.next()可以进入下一个元素并触发相应事件. 3,事件将作为一个int数值被发送,因此可以使用一个switch对相应的事件进行处理. 4,当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值. 5,相关API: 获得当前节点事件类型:parser.getEventType(); 获得下一节点事件类型

Android xml 解析

XML 常用的三种解析方式: DOM: 全部加载到内存,生成一个树状结构,占用内存比较大. SAJ: 采用事件驱动,速度快,效率高,不支持回退. PULL:也是采用事件驱动,语法简洁. 步骤: 1. 创建XML 解析器:XmlPullParser parser = Xml.newPullParser(); 2. 配置解析器:parser.setInput(is, "utf-8");// 参数为 xml 文件输入流 和 编码方式. 3. 根据事件进行解析. int type = pars

Android学习(48) -- 获取xml文件并解析.

1.根据xml的格式创建JavaBean public class News { private String title; private String detail; private String comment; private String imageUrl; @Override public String toString() { return "News [title=" + title + ", detail=" + detail + ",

Android 采用PULL来解析XML

概述: PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器,Android官方推荐开发者们使用Pull解析技术.Pull解析技术是第三方开发的开源技术,它同样可以应用于JavaSE开发. PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDocument事件.

Android(java)学习笔记106:Android XML解析

在Android平台上可以使用Simple API for XML(SAX) . Document Object Model(DOM)和Android附带的pull解析器解析XML文件. 下面是本例子要解析的XML文件: 文件名称:itcast.xml <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明

Android Xml解析之DOM详细攻略

参考地址:http://wenku.baidu.com/view/aca83d12cc7931b765ce15d1.html 由于dom方式是保存于内存中,比较耗内存,不过对于一些数据量比较小但又比较常用的隐秘信息,可以用此方法 People类是自己写的一个类,主要保存各个字符串数据. 1.为了具有扩展性 自己编了一个xml文件: <?xml version="1.0" encoding="utf-8"?> <peoples> <peo