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
    • 通过事件触发,速度快
    • 调用方式通过回调获得数据
  • 相关阅读:
    微服务搭建说明(三)
    Bootstrap框架--DataTables列表示例--添加判断
    使用bootstrap-select 动态从后台加载下拉选项
    安全整改相关内容
    tomcat禁用PUT,DELETE等一些不必要的HTTP方法
    在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面
    Tomcat修改最大连接数及查看最大连接数
    informix错误代码小结
    HTTP协议详解
    informix创建同义词
  • 原文地址:https://www.cnblogs.com/csj2018/p/11385917.html
Copyright © 2011-2022 走看看