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. 网页中这 10 种字体的运用方式,不会让人觉得 Low

    简评:字体特效非常多,有目的地选取合理的特效是让它们发挥效果的诀窍所在.好的字体排版是不需要辅助就能被识别的,否则这个设计是失败的. 本文转载自 UISDC,如需转载请联系他们. 对于设计师而言,在日 ...

  2. CGLIB动态代理模式

    概念: 第三方技术CGLIB动态代理和JDK代理不同的是,JDK代理需要提供接口,而CGLIB代理不需要: 它只需要一个非抽象类就能实现动态代理 例子: /** * 非抽象类 * @author Ad ...

  3. 51nod 1812 树的双直径 题解【树形DP】【贪心】

    老了-稍微麻烦一点的树形DP都想不到了. 题目描述 给定一棵树,边权是整数 \(c_i\) ,找出两条不相交的链(没有公共点),使得链长的乘积最大(链长定义为这条链上所有边的权值之和,如果这条链只有 ...

  4. 阿里云redisA迁移redisB迁移

    ./redis-port restore --input=./xxx.rdb --target=r-2zedc7c8e0557dsf4.redis.rds.aliyuncs.com:6379 --au ...

  5. System.Security.Cryptography.CryptographicException 微信支付中公众号发红包时候碰到的错误。

    转 留记录.我是第二个错误原因 我总结了一下出现证书无法加载的原因有以下三个 1.证书密码不正确,微信证书密码就是商户号 解决办法:请检查证书密码是不是和商户号一致 2.IIS设置错误,未加载用户配置 ...

  6. java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...

  7. oracle 表空间tablespace

    一.Oracle 表空间的组成 Everoone knows Oracle数据库真正存放数据的是数据文件,Oracle表空间是逻辑上的概念,他在物理上是并不存在的,把多个DataFile合并到一起就是 ...

  8. python+requests抓取页面图片

    前言: 学完requests库后,想到可以利用python+requests爬取页面图片,想到实战一下.依照现在所学只能爬取图片在html页面的而不能爬取由JavaScript生成的图片,所以我选取饿 ...

  9. android中The connection to adb is down,问题和解决

    android中The connection to adb is down,问题和解决   自己总结的在android中常会出现的不好解决的问题和方法(其中第三个方法经过了四天的折磨.....哎) 1 ...

  10. Java中break、continue及标签等跳转语句的使用[下]

    作为上一篇使用for循环演示的跳转,这一篇将使用while.相比较来说,while比for循环更简单.代码如下: public class LabeledWhile { public static v ...