关闭

android SAX 解析XML文件

标签: android
188人阅读 评论(0) 收藏 举报

我就直接上代码了

  1. <span style="font-size:18px;">try{  
  2. String systemId="<?xml version=\"1.0\" encoding=\"utf-8\"?><student><name>张译成</name><age>22<span style="white-space:pre"> </span></age><address>湖北省</address></student>";  
  3. SAXParserFactory factory=SAXParserFactory.newInstance();  
  4. SAXParser parser=factory.newSAXParser();  
  5. XMLReader reader=parser.getXMLReader();  
  6. reader.setContentHandler(new MyHandler(this));  
  7. byte []bb=systemId.getBytes();  
  8. ByteArrayInputStream bais=new ByteArrayInputStream(bb);  
  9. InputSource in=new InputSource(bais);  
  10. reader.parse(in);} catch (Exception e) {  
  11. e.printStackTrace();  
  12. }</span>  
在MyHanlder中的代码是

  1. <span style="font-size:18px;">package com.zhycheng;  
  2. import org.xml.sax.Attributes;  
  3. import org.xml.sax.SAXException;  
  4. import org.xml.sax.helpers.DefaultHandler;  
  5. import android.app.Activity;  
  6. import android.widget.Toast;  
  7. public class MyHandler extends DefaultHandler{  
  8.   
  9.     String tagname=null;  
  10.     Activity s=null;  
  11.       
  12.     public MyHandler(Activity d)  
  13.     {  
  14.         this.s=d;  
  15.     }  
  16.     @Override  
  17.     public void characters(char[] ch, int start, int length)  
  18.             throws SAXException {  
  19.         // TODO Auto-generated method stub  
  20.         if("age".equals(tagname))  
  21.         {  
  22.             String s=new String(ch,start,length);  
  23.             Toast.makeText(this.s, s, Toast.LENGTH_SHORT).show();  
  24.         }  
  25.         super.characters(ch, start, length);  
  26.     }  
  27.   
  28.     @Override  
  29.     public void endDocument() throws SAXException {  
  30.         // TODO Auto-generated method stub  
  31.         super.endDocument();  
  32.         tagname=null;  
  33.         Toast.makeText(s, "endDocument", Toast.LENGTH_SHORT).show();  
  34.         System.out.println("endDocument");  
  35.     }  
  36.   
  37.     @Override  
  38.     public void endElement(String uri, String localName, String qName)  
  39.             throws SAXException {  
  40.         // TODO Auto-generated method stub  
  41.         super.endElement(uri, localName, qName);  
  42.     }  
  43.   
  44.     @Override  
  45.     public void startDocument() throws SAXException {  
  46.         // TODO Auto-generated method stub  
  47.         super.startDocument();  
  48.         Toast.makeText(s, "startDocument", Toast.LENGTH_SHORT).show();  
  49.         System.out.println("startDocument");  
  50.     }  
  51.   
  52.     @Override  
  53.     public void startElement(String uri, String localName, String qName,  
  54.             Attributes attributes) throws SAXException {  
  55.         // TODO Auto-generated method stub  
  56.         super.startElement(uri, localName, qName, attributes);  
  57.         tagname=localName;  
  58.           
  59.         Toast.makeText(s, tagname, Toast.LENGTH_SHORT).show();  
  60.         System.out.println(tagname);  
  61.     }  
  62.   
  63. }</span>  

这样就可以解析出来了

另外,如果要解析出标签的属性的话,可以使用下面的代码

  1. for (int i = 0; i < attr.getLength(); i++){  
  2. System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i));  
  3. }  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:162318次
    • 积分:4138
    • 等级:
    • 排名:第7732名
    • 原创:256篇
    • 转载:39篇
    • 译文:0篇
    • 评论:28条
    最新评论