Android基础教程:学习SAX介绍
发布时间:2021-12-18 15:30:04 所属栏目:教程 来源:互联网
导读:books.xml ?xml version=1.0 encoding=utf-8? books count=3 xmlns=http://test.org/books !--bookss comment-- book id1/id nameThinking in JAVA/name /book book id2/id nameCore JAVA2/name /book book id3/id nameC++ primer/name /book book id4/id na
books.xml <?xml version="1.0" encoding="utf-8"?> <books count="3" xmlns="http://test.org/books"> <!--books's comment--> <book> <id>1</id> <name>Thinking in JAVA</name> </book> <book> <id>2</id> <name>Core JAVA2</name> </book> <book> <id>3</id> <name>C++ primer</name> </book> <book> <id>4</id> <name>数据结构(严蔚敏)</name> </book> </books> 关于接下来要上的实例 我简单说一下,这次需要解析的是上面xml文件。 我们需要把xml文件中所有书的信息摘取下来,最后统一输出。 ①类 book.java 用于保存一本书的信息 这里为了简单,xml文件就只是简单写了个ID,name 当然还有价钱等其他信息.... public class Book { private int id; private String name; 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; } } ②类XmlHandler.java 负责处理,管理xml保存书籍信息.. import java.util.ArrayList; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class XmlHandler extends DefaultHandler { public ArrayList<Book> books ; private ArrayList<String> strList; private Book book; private StringBuilder sb = new StringBuilder(); @Override public void startDocument() throws SAXException { books = new ArrayList<Book>(); strList = new ArrayList<String>(); super.startDocument(); } @Override public void endDocument() throws SAXException { super.endDocument(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if(qName.equals("book")) { book = new Book(); } super.startElement(uri, localName, qName, attributes); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { strList.add(qName); if(qName.equals("book")) { books.add(book); } else if(qName.equals("id")) { book.setId(Integer.parseInt(sb.toString().trim()) ); } else if(qName.equals("name")) { book.setName(sb.toString()); } super.endElement(uri, localName, qName); } @Override public void characters(char[] ch, int start, int length) throws SAXException { sb.setLength(0); String str = new String(ch,start,length); sb.append(str); super.characters(ch, start, length); } } 上面几个函数都是覆盖类DefaultHandler的函数 被覆盖的函数默认情况下,不执行任何操作。 (编辑:我爱故事小小网_铜陵站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |