package com.cn.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import com.cn.domain.Persion;/**** * 采用SAX解析XML *  * ****/public class SAXPersionService {public List<Persion> getPersino(InputStream is)throws Exception{SAXParserFactory factory = SAXParserFactory.newInstance();  SAXParser parser = factory.newSAXParser();PersionHandler handler = new PersionHandler();parser.parse(is, handler);return handler.getList();}private final class PersionHandler extends DefaultHandler{private List<Persion> list = null;private Persion persion;private String tag;public List<Persion> getList() {return list;}@Overridepublic void startDocument() throws SAXException {list = new ArrayList<Persion>();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {if("person".equals(localName)){persion = new Persion();persion.setId(Integer.parseInt(attributes.getValue(0)));}tag = localName;}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {if(tag != null){String textdata = new String(ch,start,length);if("name".equals(tag)){persion.setName(textdata);}else if("age".equals(tag)){persion.setAge(Short.parseShort(textdata));}}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {tag = null;if("person".equals(localName)){list.add(persion);persion = null;}}}}下面是类Persion的定义:package com.cn.domain;public class Persion {private int id;private String name;private short age;public Persion(){}public Persion(int id, String name, short age) {super();this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public short getAge() {return age;}public void setAge(short age) {this.age = age;}@Overridepublic String toString() {return "Persion [age=" + age + ", id=" + id + ", name=" + name + "]";}}

更多相关文章

  1. android 多线程下载
  2. android AlertDialog自定义大小
  3. Android(安卓)使用内容解析者往短信数据库里插入一条数据
  4. Android读取XML文件(DOM)
  5. Android(安卓)采用Pull解析XML内容 【学习记录】
  6. Android(安卓)ImageSwitcher
  7. android 反射解析xml文件成为java对象
  8. android 自定义Android菜单背景的代码
  9. android闹钟(四):实现计时器

随机推荐

  1. animation动画
  2. Android Camera2 Mediacodec编码
  3. Joggler索引页
  4. android 调节媒体音量
  5. Android 实现图片的放大缩小及左右滑动(
  6. Java finished with non-zero exit value
  7. Android OTA 增量升级失败的问题
  8. Drawable、Bitmap、byte[]之间的转换 (转
  9. Android Drawable绘图
  10. android 开发 实例 下部主导航(1)