1.新建一个SAXTest类,继承import org.xml.sax.helpers.DefaultHandler类

 package com.qiao.SrpingSource;

 import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler; public class SAXTest extends DefaultHandler { private String currentTag ; /**
* 开始读取文档,通常做一些初始化工作
*/
@Override
public void startDocument() throws SAXException {
System.out.println("----start document ---");
} /**
* 开始读取节点
*/
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException { System.out.println(qName+" --");
currentTag=qName;
if (qName.equals("name")) {
//读取属性中的值
if (attributes != null) {
for (int i = 0; i < attributes.getLength(); i++) {
System.out.println(" sss "+attributes.getQName(i)+ " " + attributes.getValue(i));
}
}
} } /**
* 读取节点中的文本文档
*/
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//当当前结点名称为name时,获取其节点中的内容
if(currentTag.equals("name")){
String content = new String(ch,start,length);
System.out.println(content); } } /**
* 读取节点结束时
*/
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
} /**
* 读取文档介绍时
*/
@Override
public void endDocument() throws SAXException { System.out.println(">> endDocument <<"); }
}

2.xml文件为

  

 <?xml version="1.0" encoding="UTF-8"?>
<class>
<stu id="001">
<name>Allen</name>
<sex>男</sex>
<age>20</age>
</stu>
<stu id="002">
<name>namy</name>
<sex>女</sex>
<age>18</age>
</stu>
<stu id="003">
<name>lufy</name>
<sex>男</sex>
<age>18</age>
</stu>
</class>

3.调用方法

  

     @Test
public void test() throws ParserConfigurationException, SAXException{ SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser(); SAXTest handler = new SAXTest(); try {
parser.parse(new File("D:/eclipse/workspace/SpringSource/src/main/resource/test.xml"), handler); } catch (IOException e) {
e.printStackTrace();
} }

4.运行结果

----start document ---
class --
stu --
name --
Allen             //读取到的name节点的值

sex --
age --
stu --
name --
namy    //读取到的name节点的值

sex --
age --
stu --
name --
lufy    //读取到的name节点的值

sex --
age --
>> endDocument <<

简单的java使用SAX解析xml的更多相关文章

  1. Java用SAX解析XML

    要解析的XML文件:myClass.xml <?xml version="1.0" encoding="utf-8"?> <class> ...

  2. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  3. java使用sax解析xml

    目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article ...

  4. Java中Sax解析XML

    SAX基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式:这种解析方法速度快.占用内存少,但是它需要应用程序自己处理 ...

  5. java 使用SAX解析xml 文件

    http://www.cnblogs.com/allenzheng/archive/2012/12/01/2797196.html 为了学习方便,忘博主勿究

  6. SAX解析XML笔记

    关于基本操作,请参考:Java用SAX解析XML,这里不重复造轮子了,以下是个人笔记:

  7. 用SAX解析xml文件,java

    (此文为(https://www.imooc.com/video/4482)之随笔) 1.用SAX解析xml文件大致分为三步 写了一个XML文件作为例子 (1)main方法代码如下: import j ...

  8. DOM&SAX解析XML

    在上一篇随笔中分析了xml以及它的两种验证方式.我们有了xml,但是里面的内容要怎么才能得到呢?如果得不到的话,那么还是没用的,解析xml的方式主要有DOM跟SAX,其中DOM是W3C官方的解析方式, ...

  9. Python:使用基于事件驱动的SAX解析XML

    SAX的特点: 是基于事件的 API 在一个比 DOM 低的级别上操作 为您提供比 DOM 更多的控制 几乎总是比 DOM 更有效率 但不幸的是,需要比 DOM 更多的工作 基于对象和基于事件的接口 ...

随机推荐

  1. [AIR] AIR将数据保存并导出为Excel

    package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.filesystem.File; ...

  2. python 导入模块与使用

    学习python之前一定要了解导入模块是怎么导入的,至少在看代码时不知道能很快的了解别人写的东西是哪里来. Python默认仅安装部分基础或核心模块,启动时也仅加载了基础模块,在需要是再显式的加载其他 ...

  3. NTP搭建指南

    NTP搭建指南 前言: NTP是网络时间协议(Network Time Protocol),用于全球的标准时间(UTC)的校正. 一般NTP 服务有不同的层次:一层是源头NTP 服务器,一层服务器都设 ...

  4. pandas筛选数据。

    https://jingyan.baidu.com/article/0eb457e508b6d303f0a90572.html 假如我们想要筛选D列数据中大于0的行:df[df['D']>0] ...

  5. svn 冲突Skipped ‘inm/inm/templates‘ -- Node remains in conflict

    svn在删除后,提交,更新操作后可能会报, svn update inm/inm -r 1586 Updating ‘inm/inm‘: Password: Skipped ‘inm/inm/temp ...

  6. 题目1008:最短路径问题(SPFA算法)

    问题来源 http://ac.jobdu.com/problem.php?pid=1008 问题描述 给定一个G(V,E)有向图,起点s以及终点t,求最短路径. 问题分析 典型的单源最短路径问题,可以 ...

  7. CF1067D. Computer Game(斜率优化+倍增+矩阵乘法)

    题目链接 https://codeforces.com/contest/1067/problem/D 题解 首先,如果我们获得了一次升级机会,我们一定希望升级 \(b_i \times p_i\) 最 ...

  8. Tomcat中查看JVM内存使用情况

    TOMCAT运行时,实时监控当前应用JVM的使用情况:可以利用Tomcat自带的应用manager查看详情. 首先,确认服务目录webapps下有manager应用 其次,需要创建角色manager和 ...

  9. laravel5.5打印sql语句

    额.其实laravel很不方便的地方就是sql写错之后不是很好调试. 上方法. //DB::connection()->enableQueryLog(); // 开启QueryLog//$rep ...

  10. python小游戏开发关于pygame库的安装

    ---恢复内容开始--- 测试环境:运行环境 Window 10 64bit上运行 前提条件 python3.7(当前时间最新版本20181021)安装(记住安装路径如C:\application\p ...