测试所用的xml文件
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><persons><person id="24"><name>Danny</name><age>24</age></person><person id="23"><name>Kiki</name><age>23</age></person></persons>

Java 代码文件
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.android.mldn.domain.Person;/** * 采用SAX解析XML内容 * @author Mik * */public class SAXPersonService {public List<Person> getPersons(InputStream inStream)throws Throwable{//创建SAXParserFactory 实例SAXParserFactory factory = SAXParserFactory.newInstance();//得到  SAXParser 的一个解释器SAXParser parser = factory.newSAXParser();//实例化一个 PersonParser 该类实现了ContentHandler接口PersonParser personParser = new PersonParser();parser.parse(inStream, personParser);inStream.close();return personParser.getPersons();}//该类负责解析 xml 数据private final class PersonParser extends DefaultHandler{private List<Person> persons = null;//用来记录元素节点的 名称private String tag = null;private Person person = null;public List<Person> getPersons(){return persons;}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {if (tag!=null) {//获取文本节点的数据String data = new String(ch, start, length);if ("name".equals(tag)) {person.setName(data);}else if ("age".equals(tag)) {person.setAge(new Short(data));}}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {if ("person".equals(localName)) {//一组读取完毕就添加到person 对象当中persons.add(person);person = null;}//读到 节点末尾tag = null;}@Overridepublic void startDocument() throws SAXException {persons = new ArrayList<Person>();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {if ("person".equals(localName)) {//创建 person 对象person = new Person();person.setId(new Integer(attributes.getValue(0)));}//记录元素节点的 名称tag = localName;}}}


更多相关文章

  1. android 从Activity 获取 rootView 根节点
  2. Android Action使用实例
  3. Android基本游戏循环实例分析
  4. Android应用程序组件Content Provider应用实例(5)
  5. Android 进程间通信 实例分析
  6. AIDL简单实例
  7. Appium Android 元素定位方法 原生+H5
  8. Spark实例-每天每个搜索词用户访问
  9. android调用web service(cxf)实例

随机推荐

  1. 【转】Android(安卓)Audio System
  2. 运行时权限方案:PermissionX
  3. 在 Kindle Fire 小米2 上调试 android 应
  4. Activity启动流程
  5. [Android(安卓)Traffic] 根据网络类型更
  6. Android(安卓)UI控件之Gallery实现循环效
  7. Android(安卓)保存画图
  8. Android(安卓)7.0导航栏上添加图标
  9. android在代码中修改view的布局
  10. Android(安卓)BaseAdapter 简单封装