zoukankan      html  css  js  c++  java
  • xml的sax解析思路


        android.util.Xml提供了一个使用sax方式解析xml的静态接口.
        static void parse(InputtStream in,Xml.Encoding encoding,ContentHandler contentHandler)
        所以在android中使用sax解析xml最简单的做法就是自己写一个类,它是org.xml.sax.ContentHandler的子类,而ContentHandler是个接口,它有个子类为org.xml.sax.helpers.DefaultHandler,只要自己写个类继承它就行了.
        一般在contentHandler的子类中,需要override几个回调方法:
        public void startDocument()   开始解析xml文件时调用
        public void startElement(String uri, String localName, String name, Attributes attributes)  开始解析xml标签时调用
        public void characters(char[] ch, int start, int length) 解析xml标签中某个起始标签和结束标签之间夹的值
        public void endElement(String uri, String localName, String name)  解析到一个xml结束标签时调用
        public void endDocument() 解析xml完成时调用

        需要说明的是,像<title><![CDATA[这里是新闻标题]]></title>这种放在cdata中的字符串也是能解析出来的.

        总的来说,sax解析xml相当于逐行扫描文件,每遇到一个标签,就压栈,碰到结尾标签,就出栈.中间碰到非标签,就当标签之间夹的值来处理.

  • 相关阅读:
    Slim + Twig 构建PHP Web应用程序
    Slim
    nginx+php+flight 构建RESTFul API
    Redis Master/Slave 实践
    spring.net +dapper 打造简易的DataAccess 工具类.
    API文档管理工具-数据库表结构思考.
    解决oracle报 ORA-12560错误,只有服务器重启恢复正常的问题
    浮点数的编码
    Jquery.BlockUI-遮罩
    class.forname & classloader
  • 原文地址:https://www.cnblogs.com/leipei2352/p/2145205.html
Copyright © 2011-2022 走看看