• SAX解析


    SAX解析工具-  Sun公司提供的。内置在jdk中。org.xml.sax.
    核心的API:
         SAXParser类: 用于读取和解析xml文件对象
         parse(File f, DefaultHandler dh)方法: 解析xml文件
                    
            参数一: File:表示 读取的xml文件。
            参数二: DefaultHandler: SAX事件处理程序。使用DefaultHandler的子类
    1.创建SAXParser对象  
         SAXParser parser=SAXParserFactory.newInstance().newSAXParser();
    2.调用parse方法
            parser.parse(new File("./src/contact.xml"), new MyDefaultHandler());
    }                    [一个类继承class 类名(extends DefaultHandler)  在调用是创建传进去
    DefaultHandler类的API:
        void startDocument()  :  在读到文档开始时调用
        void endDocument()  :在读到文档结束时调用
        void startElement(String uri, String localName, String qName, Attributes attributes)  :读到开始标签时调用                
        void endElement(String uri, String localName, String qName)   :读到结束标签时调用
        void characters(char[] ch, int start, int length)  : 读到文本内容时调用

    SAX代码例子:

    public class SAXReadXML {
      public static void main(String[] args) {
             //创建SAXParserFactory对象
          SAXParserFactory spf=SAXParserFactory.newInstance();
        try {   //创建SAXParser对象
            SAXParser saxParser=spf.newSAXParser(); 
            File file=new  File(“D:\itcastworkspace\xmlSax\src\cn\itcast\sax\students.xml”);
            /*解析文件  
             *new XMLContentHandler() 事件处理程序*/
            saxParser.parse(file, new XMLContentHandler());
           } 
        
    catch (ParserConfigurationException e) { e.printStackTrace();}
        
    catch (SAXException e) { e.printStackTrace();}
        
    catch (IOException e) { e.printStackTrace();}  }
    }
    public class XMLContentHandler extends DefaultHandler{
      //当前元素中的数据
      private String currentData;
      //取得元素数据
      public void characters(char[] ch, int start, int length)throws SAXException {
          currentData=new String(ch,start,length);
      }
       //在解析整个文档结束时调用
      public void endDocument() throws SAXException {
            System.out.println("结束文档");
      }
       //在解析元素结束时调用
      public void endElement(String uri, String localName, String name)throws SAXException {
          System.out.println("节点数据  *************************"+this.currentData);
          System.out.println("结束元素 ************"+name);
      }
      //在解析整个文档开始时调用
      public void startDocument() throws SAXException {
         System.out.println("开始文档");
      }
    
     //在解析元素开始时调用
      public void startElement(String uri, String localName, String name,Attributes attributes) throws SAXException {
          System.out.println("开始元素 ************"+name);
      }
    }
  • 相关阅读:
    linux查看端口命令 lsof netstat
    基于神经网络集成学习的研究论文推荐
    在没有训练数据的情况下通过领域知识利用弱监督方法生成NLP大型标记数据集
    旷视MegEngine是如何将31*31的大核卷积计算速度提高10倍的
    LAB03:升级K8S版本
    LAB01:权限控制RBAC
    LAB04:备份还原ETCD
    LAB02:指定节点不可用
    vue2.0增删改查 关键词检索怎么做
    【Vue实例实战】商城后台管理系统——增删改查
  • 原文地址:https://www.cnblogs.com/linst/p/5868997.html
Copyright © 2020-2023  润新知