`
哈达f
  • 浏览: 119651 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

JAXP解析XML之SAX

    博客分类:
  • XML
xml 
阅读更多

JAXP解析XML之SAX
1.获取SAXParserFactory工厂类。
2.获取SAXParser解析器。
3.获取XMLReader读写器。
4.设置内容处理器reader.setContentHandler(myHandler);
5.读取XML文档内容reader.parse("src/school.xml");

<?xml version="1.0" encoding="UTF-8" standalone="no"?><school>
	<student>
		<sno>09060034289</sno>
		<name>犀利</name>
		<address>广西南宁</address>
	</student>
	<student>
		<sno>090600304210</sno>
		<name>小李</name>
		<address>日本</address>
	</student>
	
</school>

 

 

package com.dhcool;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.junit.Test;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;

public class SaxTest {

	@Test
	public void saxTest() throws ParserConfigurationException, SAXException, IOException{
		//1.获取sax解析器工厂
		SAXParserFactory factory = SAXParserFactory.newInstance();
		//2.获取sax解析器
		SAXParser saxParser = factory.newSAXParser();
		//3.获取读写器
		XMLReader reader = saxParser.getXMLReader();
		
		MyHandler myHandler = new MyHandler();
		
		//4.设置内容处理器
		reader.setContentHandler(myHandler);
		
		//5.读取XML文档内容
		reader.parse("src/school.xml");
		
		//6.通过处理器获取list内容
		List<Student> list = myHandler.getList();
		System.out.println(list);
	}
}

class MyHandler extends DefaultHandler{
	
	private List<Student> list = new ArrayList<Student>();
	private Student student;
	private String currentTage;

	@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		currentTage = qName;
		if("student".equals(currentTage)){
			student = new Student();
		}
	}
	
	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		if("sno".equals(currentTage)){
			student.setSno(new String(ch,start,length));
		}
		
		if("name".equals(currentTage)){
			student.setName(new String(ch,start,length));
		}
		
		if("address".equals(currentTage)){
			student.setAddress(new String(ch,start,length));
		}
		
	}

	@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		if("student".equals(qName)){
			list.add(student);
			student = null;
		}
		currentTage = null;
	}
	
	public List<Student> getList() {
		return list;
	}
	
}

 

 

 

package com.dhcool;

public class Student {

	private String sno;
	private String name;
	private String address;

	public String getSno() {
		return sno;
	}

	public void setSno(String sno) {
		this.sno = sno;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}
 

分享到:
评论

相关推荐

    使用JAXP之SAX读取XML内容

    JAXP(Java API for XML Processing)是Java平台上的XML处理标准,它提供了包括SAX在内的三种解析方式,即DOM(Document Object Model)、SAX和XSLT。本篇文章将深入探讨如何使用JAXP的SAX解析器来读取XML内容。 ...

    XML的Jaxp解析示例和简单项目

    本文将深入探讨XML的解析方式之一——JAXP(Java API for XML Processing),并提供一个简单的JAXP解析XML项目的概述。 ### JAXP简介 JAXP是Java平台上的标准API,它提供了处理XML的两种主要方法:解析和转换。在...

    jaxp的四个jar包

    JAXP提供了解析XML文档和转换XML数据的能力,它包括三个主要组件:SAX(Simple API for XML)、DOM(Document Object Model)和XSLT(eXtensible Stylesheet Language Transformations)。在给定的压缩包文件中,...

    XML_JAVA指南.rar_WORKING_java Tutorial_java xml_jaxp_xml

    使用JAXP解析XML文档的步骤大致如下: 1. 加载解析器工厂:`javax.xml.parsers.DocumentBuilderFactory`或`javax.xml.parsers.SAXParserFactory`。 2. 创建解析器:通过工厂的`newDocumentBuilder()`或`newSAXParser...

    Java解析XML文件的DOM和SAX方式.doc

    在 Java 中使用 DOM 方式解析 XML 文件需要使用 JAXP(Java API for XML Processing),首先需要创建一个解析器工厂,然后使用工厂创建一个具体的解析器对象。然后,使用解析器对象来解析 XML 文件,得到一个 ...

    使用jaxp开发包中的SAX方式解析xml文档

    day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子

    XML——sax解析 极速入门易懂示例

    在Java中,使用SAX解析XML有以下几种方式: 1. **XMLReader**:这是SAX解析的核心组件,它提供了一组方法来配置解析器的行为。首先,我们需要通过`XMLReaderFactory`获取一个`XMLReader`实例,然后设置事件处理器...

    Jaxp_xml.rar_J2ME 程序_j2me_j2me xml_j2me 网络

    标题"Jaxp_xml.rar_J2ME程序_j2me_j2me_xml_j2me网络"表明这个压缩包包含了一个示例,演示如何使用JAXP(Java API for XML Processing)在J2ME环境中解析XML文件。JAXP是Java平台上的一个标准接口,用于处理XML文档...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...

    使用JAXP处理XML文件.pdf

    JAXP(Java API for XML Processing)是Java平台中处理XML文档的标准API之一。它主要包括两大块:DOM(Document Object Model)和SAX(Simple API for XML)。这两种方法各有优势:DOM适合于需要随机访问或修改XML...

    经典的DOM解析XML范例

    在Java中,解析XML文档有多种方式,其中DOM(Document Object Model)和SAX(Simple API for XML)是最常见的两种。DOM是一种基于树形结构的XML处理方式,它将整个XML文档加载到内存中,形成一个完整的对象模型,...

    java解析xml的四种经典方法

    在上述代码中,我们使用了JAXP(Java API for XML Processing)中的`DocumentBuilderFactory`和`DocumentBuilder`来创建并解析XML文件。`getElementsByTagName()`用于获取指定标签的节点列表,然后通过`item()`方法...

    数据sax解析

    在IT领域,SAX(Simple API for XML)是一种流行的用于解析XML文档的事件驱动模型。相较于DOM(Document Object Model)解析器,SAX解析器在处理大型XML文件时具有更高的效率,因为它不需要将整个XML文档加载到内存...

    解析xml文件需要的jar包

    通常,解析XML可能需要如`jaxp-1.3.jar`(Java API for XML Processing)、`xml-apis.jar`(XML API)、`sax.jar`(SAX解析器)或`dom4j.jar`(DOM4J库)等库。然而,提供的文件列表`Global.asax`、`gui.ascx`、`...

    java解析XML的4种经典方法

    Java解析XML的四种经典方法主要涵盖DOM、SAX、StAX和JDOM这四种方式,每种方法都有其独特的优势和适用场景。 1)DOM(JAXP Crimson 解析器) DOM(Document Object Model)是W3C推荐的一种XML解析标准,它将XML...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    xml jar 解析xml文件

    以下是一个简单的示例,演示如何使用这些库解析XML: ```java import org.w3c.dom.*; import javax.xml.parsers.*; import org.xml.sax.InputSource; import java.io.*; public class XMLParserExample { public ...

    JAXP 专述――Sun 的 Java API for XML 语法分析

    这意味着它并不直接提供XML解析的功能,而是建立在DOM和SAX之上,为开发者提供了更便捷地访问和控制这些解析器的手段。具体而言,JAXP通过一系列接口定义了如何创建和配置不同的解析器,如DOM解析器和SAX解析器,...

    XML文件解析问题.pdf

    本文对四种主流的 XML 文件解析方案进行了比较,包括 DOM(JAXP Crimson 解析器)、SAX(JAXP Crimson 解析器)、JDOM 和 dom4j。比较的结果表明,DOM 解析方式具有较高的解析速度,但占用较高的内存,而 SAX 解析...

Global site tag (gtag.js) - Google Analytics