使用 SAX 读取 XML 文档,也是不需要第三方jar包的,并且 SAX 不是官方制定的规范,可以认为是“民间”制定的,不过得到了很广泛的使用
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<学生名册>
<学生 学号="1">
<姓名>张三</姓名>
<!-- haha -->
<性别>男</性别>
<年龄>20</年龄>
</学生>
<学生 学号="2">
<姓名>李四</姓名>
<性别>女</性别>
<年龄>19</年龄>
</学生>
<学生 学号="3">
<姓名>王五</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
</学生名册>
package com.syh.xml.sax;
import java.io.File;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest1 {
public static void main(String[] args) throws Exception, SAXException {
//step1 : 获得 SAX 解析器工厂实例
SAXParserFactory factory = SAXParserFactory.newInstance() ;
//step2 : 获得 SAX 解析器实例
SAXParser parser = factory.newSAXParser() ;
//step3 : 开始进行解析 ,需要传递一个解析对象--> File 对象, 和一个实现了 DefaultHandler 的对象
parser.parse(new File("student.xml"), new MyHandler()) ;
}
}
class MyHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
System.out.println("parse began");
}
@Override
public void endDocument() throws SAXException {
System.out.println("parse finished");
}
/**
* 这个方法才是最主要的,因为我们所要得到的信息都是在元素(Element) 中的
*/
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("start element");
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("finish element");
}
}
下面是在控制台打印出现的效果:
输出的结果不是很容易看懂,不过仔细想一下就明白了!
parse began
start element
start element
start element
finish element
start element
finish element
start element
finish element
finish element
start element
start element
finish element
start element
finish element
start element
finish element
finish element
start element
start element
finish element
start element
finish element
start element
finish element
finish element
finish element
parse finished
分享到:
相关推荐
QT使用SAX读取xml高效-快速.rar SAX(Simple API for XML) 如果你只想读取并显示整个XML文档,那么SAX是很好的选择,因为它提供了比DOM更简单的接口,并且它不需要将整个XML文档一次性读入内存,这样便可以用来读取...
本文将重点讨论SAX解析器,并通过描述中的"test_sax.rar"压缩包中的示例,讲解如何使用SAX解析器在Visual Studio 20(VS20)环境下读取XML文档。 SAX解析器是一种基于事件驱动的解析方式,它不会一次性加载整个XML...
标题“sax解析xml本地读取xml”指的是使用SAX解析器来读取和解析存储在本地文件系统中的XML文件。这种方式适用于处理那些无法一次性加载到内存中的大型XML文档,或者对于内存有限的环境。 SAX解析的基本工作原理...
SAX解析器不同于DOM(Document Object Model)解析器,DOM会将整个XML文档加载到内存中形成一个树形结构,而SAX则是逐行扫描XML文档,当遇到特定的元素、属性或事件时,触发相应的回调函数。这种按需处理的方式使得...
SAX解析器在读取XML文档时,会触发一系列的事件,如开始文档、结束文档、开始元素、结束元素等。开发者需要定义一个ContentHandler类来处理这些事件,当解析器遇到相应的XML元素时,就会调用ContentHandler中的方法...
使用SAX2方法读取XML文件的基本步骤如下: 1. **包含必要的头文件**:首先,在C++程序中需要包含`xercesc/sax2/SAX2XMLReader.hpp`和`xercesc/sax/DefaultHandler.hpp`等头文件,以使用Xerces-C++库中的SAX2解析器...
本篇文章将深入探讨如何使用JAXP的SAX解析器来读取XML内容。 首先,了解SAX解析器的工作原理。SAX解析器逐行读取XML文件,当遇到XML文档的各个元素、属性等结构时,会触发相应的事件回调,如开始文档、结束文档、...
本篇文章将深入探讨如何使用SAX技术读取XML文档,以及SaxReaderXML.rar压缩包中的相关内容。 首先,SAX解析器的工作方式是逐行扫描XML文档,当遇到元素、属性、文本等内容时,会触发相应的事件回调函数。这种解析...
Java SAX(Simple API for XML)解析器是一种基于事件驱动的XML解析方式,它不将整个XML文档加载到内存中,而是逐行读取,当遇到某个事件(如开始标签、结束标签等)时,会触发相应的事件处理器方法。这种方式节省了...
标题“使用Sax方法读XML文档:SaxReaderXML.zip”指出,这个压缩包包含了一个关于如何使用SAX解析器来读取XML文档的示例。SAX解析器的工作方式是,当解析到XML文档中的某个元素、属性或文本时,会触发相应的事件,...
在处理XML数据时,SAX(Simple API for XML)是一种常见的解析器,它采用事件驱动模型,以流式方式读取XML文档,降低了内存占用,适用于处理大型XML文件。本主题将深入探讨如何在Servlet中利用SAX解析XML文档。 ...
2. **SAX解析**:SAX是一种事件驱动的解析方式,它逐行读取XML文档,遇到元素、属性等时触发相应的事件处理器。这种方式节省内存,适合处理大型XML文件。"sax_xml sax_解析_xml"标签表明了本压缩包包含使用SAX解析...
Java SAX方式解析XML文档是一种高效的处理大型XML文件的方法,它基于事件驱动模型,不将整个XML文档加载到内存中,而是逐个处理XML元素。这种方式非常适合处理大文件,因为它节省了内存,但需要编写更多的代码来处理...
DOM解析器将整个XML文档加载到内存中,创建一个树形结构的文档对象模型,允许开发者通过节点层级遍历和操作XML数据。DOM解析的特点包括: 1. 完整性:DOM解析器一次性加载整个XML文档,因此可以随时访问任何部分的...
SAX解析器是一种基于事件驱动的解析模型,它读取XML文档,遇到每个元素、属性、文本等时,都会触发相应的事件回调函数。这种方式使得解析器不需要一次性加载整个XML文档到内存,因此对于大文件,SAX解析具有高效、低...
DOM解析器将整个XML文档加载到内存中,构建一个树形结构,即DOM树。每个XML元素、属性、文本等都被表示为树中的节点。通过DOM,开发者可以随时访问任何部分的XML文档,因为整个文档都在内存中,所以操作灵活,但缺点...
SAX是一种基于事件驱动的解析器,它不会一次性加载整个XML文档到内存,而是逐行读取,当遇到某个元素、属性或其他结构时,会触发相应的事件处理器方法。这种方式适用于处理大型XML文档,因为它占用的内存较小。然而...
SAX解析器以流式的方式读取XML文档,当遇到文档的各个元素时,会触发相应的事件,如开始文档、开始元素、结束元素、字符数据等。程序员通过实现SAX解析器的回调接口来处理这些事件,从而解析XML内容。这种方式使得...