android编程之XML文件解析方法详解(附源码下载)

2019-12-10 19:53:56王冬梅

public abstract void startDocument () 接收文档开始的通知

public abstract void endDocument () 接收文档结束的通知

public abstract void startElement (String uri, String localName, String qName, Attributes atts) 接收文档开始的标签

public abstract void endElement (String uri, String localName, String qName) 接收文档结束的标签

在一般使用中为了简化开发,在org.xml.sax.helpers提供了一个DefaultHandler类,它实现了ContentHandler的方法,我们只想继承DefaultHandler方法即可。

另外SAX解析器提供了一个工厂类:SAXParserFactory,SAX的解析类为SAXParser 可以调用它的parser方法进行解析。

看了些基础以后开始上代码吧(核心代码,下载代码在附件)

 

 
  1. public class SAXPraserHelper extends DefaultHandler {  final int ITEM = 0x0005; 
  2. List<channel> list;  channel chann; 
  3. int currentState = 0;  public List<channel> getList() { 
  4. return list;  } 
  5. /*  * 接口字符块通知 
  6. */  @Override 
  7. public void characters(char[] ch, int start, int length)  throws SAXException { 
  8. // TODO Auto-generated method stub  // super.characters(ch, start, length); 
  9. String theString = String.valueOf(ch, start, length);  if (currentState != 0) { 
  10. chann.setName(theString);  currentState = 0; 
  11. }  return; 
  12. }  /* 
  13. * 接收文档结束通知  */ 
  14. @Override  public void endDocument() throws SAXException { 
  15. // TODO Auto-generated method stub  super.endDocument(); 
  16. }  /* 
  17. * 接收标签结束通知  */ 
  18. @Override  public void endElement(String uri, String localName, String qName) 
  19. throws SAXException {  // TODO Auto-generated method stub 
  20. if (localName.equals("item"))  list.add(chann); 
  21. }  /* 
  22. * 文档开始通知  */ 
  23. @Override  public void startDocument() throws SAXException {