Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Android采用SAX解析XML文檔

Android采用SAX解析XML文檔

編輯:初級開發

  1. package com.cn.service;
     

  2.  
  3. import Java.io.InputStream;
     
  4. import Java.util.ArrayList;
     
  5. import Java.util.List;
  1. import Javax.XML.parsers.SAXParser;
     
  2. import Javax.XML.parsers.SAXParserFactory;
     

  3.  
  4. import org.XML.sax.Attributes;
     
  5. import org.XML.sax.SAXException;
     
  6. import org.XML.sax.helpers.DefaultHandler;
     

  7.  
  8. import com.cn.domain.Persion;
     
  9. /****
     
  10. * 采用SAX解析XML
     

  11.  
  12. * ****/
     
  13. public class SAXPersionService {
     
  14.         
     
  15.         public List<Persion> getPersino(InputStream is)throws Exception{
     
  16.                 SAXParserFactory factory = SAXParserFactory.newInstance();  
     
  17.                 SAXParser parser = factory.newSAXParser();
     
  18.                 PersionHandler handler = new PersionHandler();
     
  19.                 parser.parse(is, handler);
     
  20.                 return handler.getList();
     
  21.         }
     
  22.         
     
  23.         private final class PersionHandler extends DefaultHandler{
     
  24.                 private List<Persion> list = null;
     
  25.                 private Persion persion;
     
  26.                 private String tag;
     
  27.                 
     
  28.                 public List<Persion> getList() {
     
  29.                         return list;
     
  30.                 }
     
  31.                 @Override
     
  32.                 public void startDocument() throws SAXException {
     
  33.                         list = new ArrayList<Persion>();
     
  34.                 }
     
  35.                 @Override
     
  36.                 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {
     
  37.                         if("person".equals(localName)){
     
  38.                                 persion = new Persion();
     
  39.                                 persion.setId(Integer.parseInt(attributes.getValue(0)));
     
  40.                         }
     
  41.                         tag = localName;
     
  42.                 }
     
  43.                 @Override
     
  44.                 public void characters(char[] ch, int start, int length)throws SAXException {
     
  45.                         if(tag != null){
     
  46.                                 String textdata = new String(ch,start,length);
     
  47.                                 if("name".equals(tag)){
     
  48.                                         persion.setName(textdata);
     
  49.                                 }else if("age".equals(tag)){
     
  50.                                         persion.setAge(Short.parseShort(textdata));
     
  51.                                 }
     
  52.                         }
     
  53.                 }
     
  54.                 @Override
     
  55.                 public void endElement(String uri, String localName, String qName)throws SAXException {
     
  56.                         tag = null;
     
  57.                         if("person".equals(localName)){
     
  58.                                 list.add(persion);
     
  59.                                 persion = null;
     
  60.                         }
     
  61.                 }
     
  62.                 
     
  63.         }
     
  64. }
     

  65.  
  66. 下面是類Persion的定義:
     

  67.  

  68.  
  69. package com.cn.domain;
     

  70.  
  71. public class Persion {
     
  72.         private int id;
     
  73.         private String name;
     
  74.         private short age;
     
  75.         
     
  76.         public Persion(){
     
  77.                 
     
  78.         }
     
  79.         
     
  80.         public Persion(int id, String name, short age) {
     
  81.                 super();
     
  82.                 this.id = id;
     
  83.                 this.name = name;
     
  84.                 this.age = age;
     
  85.         }
     
  86.         public int getId() {
     
  87.                 return id;
     
  88.         }
     
  89.         public void setId(int id) {
     
  90.                 this.id = id;
     
  91.         }
     
  92.         public String getName() {
     
  93.                 return name;
     
  94.         }
     
  95.         public void setName(String name) {
     
  96.                 this.name = name;
     
  97.         }
     
  98.         public short getAge() {
     
  99.                 return age;
     
  100.         }
     
  101.         public void setAge(short age) {
     
  102.                 this.age = age;
     
  103.         }
     
  104.         @Override
     
  105.         public String toString() {
     
  106.                 return "Persion [age=" + age + ", id=" + id + ", name=" + name + "]";
     
  107.         }
     
  108. }
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved