zoukankan      html  css  js  c++  java
  • 廖雪峰Java14Java操作XML和JSON-1XML-3SAX

    SAX:Simple API for XML

    • 基于事件的API
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    
    public class SAXSample {
        static final String XML_URL = "http://rss.sina.com.cn/tech/internet/home28.xml";
        public static void main(String[] args) throws Exception{
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            sp.parse(XML_URL,new MyHandle());
        }
    }
    
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class MyHandle extends DefaultHandler {
        void print(Object... objs){
            for(Object obj:objs){
                System.out.print(obj);
                System.out.print(" ");
            }
            System.out.println();
        }
        @Override
        public void startDocument() throws SAXException{ //开始解析文档时,就会触发startDocument事件
            print("start Document");
        }
        @Override
        public void endDocument() throws SAXException{ //解析结束时,会触发endDocument事件
            print("end Document");
        }
        @Override
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{ //如果遇到一个XML元素,会触发startElement事件
            print("start Element:",localName,qName);
        }
        @Override
        public void endElement(String uri,String localName,String qName) throws SAXException{ //元素结束时,会触发endElement事件
            print("end Element:",localName,qName);
        }
        @Override
        public void characters(char[] ch,int start,int length) throws SAXException{ //遇到文本,会触发characters事件
            print("characters:",new String(ch,start,length));
        }
        @Override
        public void error(SAXParseException e) throws SAXException{ //遇到错误,会触发error事件
            print("error:",e);
        }
    }
    

    总结:
    SAX解析XML

    • 一种流式解析XML的API
    • 通过事件触发,速度快
    • 调用方式通过回调获得数据
  • 相关阅读:
    转载 自定义ListView背景
    Android 在模拟器上创建sd卡
    转载 Android TextView加下划线
    转载 Dom4j生成xml
    转载 在Struts2中使用servlet 配置问题
    android开发不错的地方
    bat demo1自定义变量
    redhat 5下安装SVN
    linux 忘记root密码
    DEBUG Sigar no libsigarx86linux.so in java.library.path
  • 原文地址:https://www.cnblogs.com/csj2018/p/11385917.html
Copyright © 2011-2022 走看看