加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 教程 > 正文

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的函数   被覆盖的函数默认情况下,不执行任何操作。

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读