博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml解析中的sax解析
阅读量:4570 次
发布时间:2019-06-08

本文共 2011 字,大约阅读时间需要 6 分钟。


title: xml解析中的sax解析

tags:
grammar_cjkRuby: true
---

SAXPasser 类:

parser(File file, DefaultHandler handler):该方法使用sax解析方式去解析xml文档

DefaultHandler类:重写该类中的一些方法,用于处理xml文档

startElement( .... String qName): 读到开始标签时调用
characterrs(char[] ch,int start,int length); 读到文本内容时调用(包括空格和换行)
endElement(.....String qName): 读到结束标签时调用

这个不多说下面代码:

package gz.itcast.c_sax;import java.io.File;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 读取contact.xml文件,完整输出文档内容 * @author APPle * */public class Demo2 {public static void main(String[] args)throws Exception {    //1.创建SAXParser    SAXParser parser = SAXParserFactory.newInstance().newSAXParser();    //2.读取xml文件    MyDefaultHandler2 handler = new MyDefaultHandler2();    parser.parse(new File("./src/contact.xml"), handler);    String content = handler.getContent();    System.out.println(content);}}

DefaultHandlet类中执行方法

package gz.itcast.c_sax;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;/** * SAX处理器程序 * @author APPle */public class MyDefaultHandler2 extends DefaultHandler {    //存储xml文档信息    private StringBuffer sb = new StringBuffer();        //获取xml信息    public String getContent(){        return sb.toString();    }        /**     * 开始标签     */    @Override    public void startElement(String uri, String localName, String qName,            Attributes attributes) throws SAXException {        sb.append("<"+qName);        //判断是否有属性        if(attributes!=null){            for(int i=0;i
"); } /** * 文本内容 */ @Override public void characters(char[] ch, int start, int length) throws SAXException { //得到当前读取的文本 String content = new String(ch,start,length); sb.append(content); } /** * 结束标签 */ @Override public void endElement(String uri, String localName, String qName) throws SAXException { sb.append("
"); }}

转载于:https://www.cnblogs.com/renboqie/p/5571782.html

你可能感兴趣的文章
笔记_第一章_01
查看>>
github开发
查看>>
Codeforces Round #564(div2)
查看>>
python协程
查看>>
IaaS基础设施资源管理架构与openstack各组件对应关系
查看>>
PHP SplObjectStorage使用实例
查看>>
使用sencha cmd打包extjs4.2.2
查看>>
Python之路—Day2作业
查看>>
方法重载
查看>>
在windows中使用VMWare安装Mac OS 10.7
查看>>
windows下通过idea连接hadoop和spark集群
查看>>
BZOJ 1822 Frozen Nova 霜冻新星
查看>>
2016041601 - linux上安装maven
查看>>
Android游戏可能遇到的3个问题及解决方案
查看>>
DataBase First创建数据库
查看>>
真事儿!——我们官网被全站拷贝了!
查看>>
边工作边刷题:70天一遍leetcode: day 27-1
查看>>
清理C盘的一个新发现,Visio Studio在调试过程中产生的垃圾文件
查看>>
抽象类及抽象方法
查看>>
Canvas基本绘画学习
查看>>