解析XML文件——SAX基本操作

1.SAX的主要事件处理

方法说明
public void startDocument() throws SAXException文档开始
public void endDocument() throws SAXException文档结束
public void startElement(String uri,String localName,String qName,Attributes attr) throws SAXException元素开始,可以取得元素的名称和元素的全部属性
public void endElement(String uri,String localName,String qName) throws SAXException元素结束,可以取得元素的名称和元素的全部属性
public void characters(char[] ch,int start,int length) throws SAXException元素内容

2.SAX解析器

//定义SAX解析器示例
//假设已导入所需的包
public class parserSAX extends DefaultHandler {

    @Override
    public void startDocument() throws SAXException {  //文档开始
        System.out.println("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
    }

    @Override
    public void endDocument() throws SAXException {  //文档结束
        System.out.println("\n 读取结束...");
    }

    @Override
    public void startElement(String uri, String localName, String name, Attributes attr) throws SAXException {
        //元素开始
        System.out.print("<");
        //输出元素名称
        System.out.print(name);
        //取得全部的属性
        if (attr != null) {
            for (int x = 0; x < attr.getLength(); x++) {
                System.out.print(" " + attr.getQName(x)
                        + "=\"" + attr.getValue(x) + "\"");
            }
        }
        System.out.print(">");
    }

    @Override
    public void endElement(String uri, String localName, String name) throws
            SAXException {  //元素结束
        System.out.print("</");
        //输出元素名称
        System.out.print(name);
        System.out.print(">");
    }

    @Override
    public void characters(char[] ch, int start, int length) throws
            SAXException{  //取得元素内容
        System.out.print(new String(ch,start,length));  //输出内容
    }
}

3.使用SAX解析器

//使用SAX解析器示例
//假设已导入所需的包
public class Main {
    public static void main(String[] args) throws Exception {
        //建立SAX解析工厂
        SAXParserFactory fac = SAXParserFactory.newInstance();
        //构造解析器
        SAXParser par = fac.newSAXParser();
        //解析XML使用HANDLER
        par.parse("C:" + File.separator + "SAX.xml", new parserSAX());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值