Android SAX解析XML文件
来源:互联网 发布:急用淘宝赚钱 编辑:程序博客网 时间:2024/05/17 09:01
SAXPersonService.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 cn.itcast.domain.Person;/** * 采用SAX解析XML内容 */public class SAXPersonService {public List<Person> getPersons(InputStream inStream) throws Throwable{SAXParserFactory factory = SAXParserFactory.newInstance();SAXParser parser = factory.newSAXParser();PersonParser personParser = new PersonParser();parser.parse(inStream, personParser);inStream.close();return personParser.getPersons();}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 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 = new Person();person.setId(new Integer(attributes.getValue(0)));}tag = localName;}@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)){persons.add(person);person = null;}tag = null;}}}
测试类PersonServiceTest.java
import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStreamWriter;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;import cn.itcast.domain.Person;import cn.itcast.service.SAXPersonService;import android.content.Context;import android.test.AndroidTestCase;import android.util.Log;public class PersonServiceTest extends AndroidTestCase {private static final String TAG = "PersonServiceTest";public void testSAXGetPersons() throws Throwable{SAXPersonService service = new SAXPersonService();InputStream inStream = getClass().getClassLoader().getResourceAsStream("itcast.xml");List<Person> persons = service.getPersons(inStream);for(Person person : persons){Log.i(TAG, person.toString()); }}}
- Android--XML文件解析(SAX)
- Android SAX解析xml文件
- android SAX解析xml文件
- android sax 解析 xml文件
- Android SAX解析XML文件
- android SAX 解析Xml 文件
- 【android】SAX解析XML文件
- android SAX 解析XML文件
- Android SAX解析XML文件
- Android SAX解析xml文件
- Android SAX解析XML文件
- Android SAX解析xml文件
- Android SAX解析xml文件
- Android:SAX解析XML文件
- android SAX 解析XML文件
- Android SAX方式解析XML文件
- android之sax解析xml文件
- android 用 SAX 解析xml文件!
- Openlayers学习笔记——Vector Layer Rules和Filter
- 中介者模式(Mediator)
- 行为模式: Visitor(访问者)
- Openlayers学习笔记——StylingControls
- Geoserver & Openlayers 学习笔记
- Android SAX解析XML文件
- 软件项目管理系统-人员管理-加班记录一览
- 简明x86汇编语言教程(7)
- 基于CAN和Labview的监控系统2
- 结构型模式:Flyweight(享元)
- 8大你不得不知的Android调试工具
- Android之单元测试
- 数组大折腾
- 解析html程序(C#版)——遍历各个节点(mshtml)