首页 后端开发 XML/RSS教程 XML解析之SAX解析过程代码详解

XML解析之SAX解析过程代码详解

Feb 16, 2017 pm 03:20 PM

上一篇谢了解析原理和过程,这里应用代码直观认识这个原理:

新建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解析过程代码详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用Gin框架实现XML和JSON数据解析功能 使用Gin框架实现XML和JSON数据解析功能 Jun 22, 2023 pm 03:14 PM

在Web开发领域中,数据格式之一的XML和JSON被广泛应用,而Gin框架则是一款轻量级的Go语言Web框架,它简洁易用且具有高效的性能。本文将介绍如何使用Gin框架实现XML和JSON数据解析功能。Gin框架概述Gin框架是一款基于Go语言的Web框架,它可用于构建高效和可扩展的Web应用程序。Gin框架的设计思想是简洁易用,它提供了多种中间件和插件,使开

Java错误:XML解析错误,如何解决和避免 Java错误:XML解析错误,如何解决和避免 Jun 24, 2023 pm 05:46 PM

随着Java在互联网领域中的应用越来越广泛,很多开发者可能会在使用XML进行数据解析的过程中遇到“XML解析错误”的问题。XML解析错误是指在使用Java解析XML数据时,由于数据格式不正确、标签未闭合或者其他原因导致程序无法正常解析数据,从而引发错误和异常。那么,在面对XML解析错误时,我们应该如何解决和避免呢?本文将对这一问题进行详细说明。一、XML解析

Java开发中如何解决XML解析内存占用过高问题 Java开发中如何解决XML解析内存占用过高问题 Jun 29, 2023 am 09:37 AM

XML是一种常用的数据交换格式,在Java开发中,经常需要解析大规模的XML文件。然而,由于XML文件往往包含大量的节点和元素,传统的XML解析方式容易导致内存占用过高的问题。本文将介绍一些解决XML解析内存占用过高问题的方法。使用SAX解析器SAX(SimpleAPIforXML)是一种基于事件驱动的XML解析方式。相比于DOM(DocumentO

使用PHP解析XML,获取节点内容的方法 使用PHP解析XML,获取节点内容的方法 Jun 13, 2023 pm 04:31 PM

在开发Web应用程序时,XML是一种非常重要的数据格式,它可以用于数据交换和信息共享等场景。在PHP中,我们可以使用内置的函数和第三方库来解析和操作XML。下面我们将讨论如何使用PHP解析XML,并获取其中节点的内容。解析XML文件首先,我们需要解析XML文件,PHP提供了两种主要的方法来解析XML:1.1.使用SimpleXMLSimpleXML是PHP内

PHP8.1更新:增强的XML解析功能 PHP8.1更新:增强的XML解析功能 Jul 07, 2023 am 09:22 AM

PHP8.1更新:增强的XML解析功能随着互联网的快速发展,XML(可扩展标记语言)在数据交换和信息传递中扮演了重要的角色。作为一种通用的数据格式,XML经常被用于在不同应用程序之间传递和存储数据。为了提供更好的XML解析能力,PHP8.1在XML解析功能上进行了增强,为开发者提供了更多便利。在PHP8.1中,一个重要的改进是引入了libxml_disabl

解决Java XML解析异常(XMLParsingException)的解决方案 解决Java XML解析异常(XMLParsingException)的解决方案 Aug 19, 2023 pm 01:43 PM

解决JavaXML解析异常(XMLParsingException)的解决方案简介:在处理XML文件时,我们常常会遇到XML解析异常(XMLParsingException),这是由于XML文件格式错误或者XML解析器配置不正确等原因导致的。本文将介绍一些常见的XML解析异常以及解决方案,帮助开发者更好地应对这些问题。一、XML解析异常的原因在解析XML文

PHP中如何处理XML解析错误? PHP中如何处理XML解析错误? Dec 02, 2023 pm 02:58 PM

PHP是一种广泛使用的编程语言,它支持许多不同的文件格式,包括XML。在处理XML文件时,可能会出现解析错误。本文将介绍如何在PHP中处理XML解析错误,并提供一些具体的代码示例。检查XML文件格式在处理XML文件之前,必须确保XML文件的格式正确。XML文件必须是严格的格式,否则解析器将无法处理该文件。例如,XML文件必须包含根元素,并使用正确的命名空间、

Java开发如何减少XML解析内存占用问题 Java开发如何减少XML解析内存占用问题 Jun 30, 2023 pm 09:19 PM

Java开发中如何解决XML解析占用过多堆内存问题引言:随着信息和数据的爆炸式增长,XML(可扩展标记语言)在企业应用开发中的重要性不断增加。然而,XML解析过程中可能会遇到占用过多堆内存的问题,尤其是在处理大型XML文件时。本文将介绍一些解决这个问题的方法和技巧。一、了解XML解析过程在深入解决XML解析占用过多堆内存问题之前,我们先了解一下XML解析的基

See all articles