JAVA-使用SAX解析XML数据

本文详细介绍了使用SAX解析XML数据的方法,包括SAX解析的事件驱动原理、DefaultHandler事件处理器的实现、SAXParser的使用,以及如何封装DefaultHandler子类来处理XML数据。通过代码测试展示了如何获取并解析XML数据,最后对比了SAX与DOM、PULL解析器的优缺点。
摘要由CSDN通过智能技术生成

一、SAX (Simple API for XML)

  1. SAX解析XML文件采用的是事件驱动,它不需要解析完整个文档,而是一边按内容顺序解析文档,一般判断当前读到的字符是否符合XML语法中的某部分,如果符合则会回调一些函数来处理事件。
  2. 使用SAX的优点:SAX采用流的形式来处理,占用内存少。

二、事件处理器DefaultHandler

  1. 事件驱动的回调函数在DefaultHandler中,因此需要写一个DefaultHandler子类,然后在回调函数中处理相关的事件。

    public class XMLPersonHandler extends DefaultHandler {
    
    
        @Override
        public void startDocument() throws SAXException {
    
            //开始解析xml之前的预处理
        }
    
        @Override
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    
             // 解析到节点的开头标签'<...'时被调用
    
             // uri:命名空间
             // localName:不带命名空间前缀的标签名
             // qName:带命名空间的标签名
    
             // attributes:标签的属性集合 <person id="001"></person>
             // 如上,属性id在attributes中,获取标签数据如下:
            // attributes.getQName( ),attributes.getValue( )
    
    
        }
    
        @Override
        public void characters(char[] ch, int start, int length) throws SAXException {
    
            // 读取**开头标签**到'>'时被调用,获取标签所夹的内容。
            //<name>Jack</name>
    
            // ch[]:内容
            // start&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值