千家信息网

XML中SAX解析过程的示例分析

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了XML中SAX解析过程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。新建Demo1类:import jav
千家信息网最后更新 2025年02月02日XML中SAX解析过程的示例分析

这篇文章主要介绍了XML中SAX解析过程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

新建Demo1类:

import java.io.File;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 第一个SAX读取xml文件程序 * @author APPle * */public class Demo1 {                public static void main(String[] args) throws Exception{                //1.创建SAXParser对象                //                SAXParser parser = SAXParserFactory.newInstance().newSAXParser();                                //2.调用parse方法                /**                 * 参数一: xml文档                 * 参数二: DefaultHandler的子类,默认基类,因此没法new。用子类                 */                parser.parse(new File("./src/contact.xml"), new MyDefaultHandler());                //使用指定的 DefaultHandler 将指定文件的内容解析为 XML。这里一定要自定义MyDefaultHandler类,且在里面实现业务逻辑。不理解先死记住这种模式。        }}


接着给出自定义继承DefaultHandler的MyDefaultHandler

import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;/** * SAX处理程序(如何解析xml文档) * @author APPle * */public class MyDefaultHandler extends DefaultHandler {                /**         * 开始文档时调用         */        @Override        public void startDocument() throws SAXException {                System.out.println("MyDefaultHandler.startDocument()");        }                /**         * 开始标签时调用         * @param qName: 表示开始标签的标签名         * @param attributes: 表示开始标签内包含的(属性)【列表】         */        @Override        public void startElement(String uri, String localName, String qName,                        Attributes attributes) throws SAXException {                System.out.println("MyDefaultHandler.startElement()-->"+qName);        }                /**         * 结束标签时调用         * @param qName: 结束标签的标签名称         */        @Override        public void endElement(String uri, String localName, String qName)                        throws SAXException {                System.out.println("MyDefaultHandler.endElement()-->"+qName);        }                /**         * 读到文本内容的时调用         * @param ch: 表示当前读完的所有文本内容         * @param start: 表示当前文本内容的开始位置         * @param length: 表示当前文本内容的长度          */         @Override        public void characters(char[] ch, int start, int length)                        throws SAXException {                //得到当前文本内容                String content = new String(ch,start,length);                System.out.println("MyDefaultHandler.characters()-->"+content);        }                /**         * 结束文档时调用         */        @Override        public void endDocument() throws SAXException {                System.out.println("MyDefaultHandler.endDocument()");        }        }

打印输出,更直观认识sax解析过程。

感谢你能够认真阅读完这篇文章,希望小编分享的"XML中SAX解析过程的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0