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 {
/**
* 获取人员
* @param xmlStream xml数据
* @return 人员信息
* @throws Exception
*/
public List<Person> getPersons(InputStream xmlStream) throws Exception{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
PersonHandler handler = new PersonHandler();
parser.parse(xmlStream, handler);
return handler.getPersons();
}
private class PersonHandler extends DefaultHandler{
private List<Person> persons = null;
private String preTag = null;
private Person person = null;
public List<Person> getPersons() {
return persons;
}
@Override
public void startDocument() throws SAXException {
persons = new ArrayList<Person>();
}
@Override
public 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)));
}
preTag = localName;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if(preTag!=null){
String data = new String(ch, start, length);
if("name".equals(preTag)){
person.setName(data);
}else if("age".equals(preTag)){
person.setAge(new Short(data));
}
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if("person".equals(localName)){
persons.add(person);
person = null;
}
preTag = null;
}
}
}
分享到:
相关推荐
Android SAX 解析XML SAX 解析XML(通用)
android sax解析xml 完整的例子及说明,解压后就可以运行,相信你的选择
android SAX解析XML
android 使用 sax 去解析xml。
android中用sax解析xml模板的demo源码,解压出来将解析类导入其他工程就可用了不必再写了.
android用sax解析xml文件实例源码
下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...
读取和解析xml文件
android使用SAX解析XML
Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用
Android之SAX解析
使用sax解析从网络上获取的xml文件
android sax解析创建xml源码,其中包含两种解析xml的方式。
android 使用sax解析XML,内含视频和源码已经说明文档。非常详细
Android中SAX解析XML的demo
希望对想获得google天气预报的童靴有帮助,这里的解析只有对当天天气的解析,可以模仿后解析预报的天气。
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 SAX解析XML xml 源码(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
NULL 博文链接:https://z251257144.iteye.com/blog/1356394
android 以SAX方式解析xml
android 学习笔记1--SAX解析XML,了解下如何用sax解析xml吧