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
    • 通过事件触发,速度快
    • 调用方式通过回调获得数据
  • 相关阅读:
    docker清理无用资源
    为什么不需要在 Docker 容器中运行 sshd
    转载:SQL注入演示demo
    docker方式安装prometheus主控
    promethus监控结构
    oracle的函数
    oracle冷备份后恢复
    oracle的冷备份
    oracle常用
    oracle的系统文件的查询
  • 原文地址:https://www.cnblogs.com/csj2018/p/11385917.html
Copyright © 2011-2022 走看看