SAX解析

本文介绍如何在Android开发中利用SAX解析XML文件,通过创建XML解析器并实现事件处理接口,高效地读取和处理大量XML数据。
摘要由CSDN通过智能技术生成
  • 首先新建一个类继承自DefaultHandler
 public class ContentHandle extends DefaultHandler {
   

    private String nodeName;
    private StringBuilder id;
    private StringBuilder name;
    private StringBuilder version;


    /***
     * startDocument() 方法会在开始XML解析的时候调用,
     * startElement() 方法会在开始解析某个节点的时候调用,
     * characters() 方法会在获取节点中内容的时候调用,
     * endElement() 方法会在完成解析某个节点的时候调用,
     * endDocument() 方法会在完成整个XML解析的时候调用。
     * 其中,startElement()、characters() 和endElement() 这3个方法是有参数的,从XML中解析出的数据就会以参
     * 数的形式传入到这些方法中。需要注意的是,在获取节点中的内容时,characters() 方法可
     * 能会被调用多次,一些换行符也被当作内容解析出来,我们需要针对这种情况在代码中做好控
     * 制
     * @throws SAXException
     */

    @Override
    public void startDocument() throws SAXException {
   
        id = new StringBuilder();
        name = new StringBuilder();
        version = new StringBuilder();
    }

    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
   
       // 记录当前节点名
        nodeName = localName;
    }

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
   
      // 根据当前的节点名判断将内容添加到哪一个StringBuilder对象中
        if ("id".equals(nodeName)) {
   
            id.append(ch, start, length);
        } else if ("name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值