SAX解析XML-例子
1.要解析的xml
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee id="001">
<name>cici</name>
<department>finace</department>
<supervisor>lily</supervisor>
</employee>
<employee id="002">
<name>alex</name>
<department>develope</department>
<supervisor>lily</supervisor>
</employee>
</employees>
2.继承DefaultHandler的子类EmployeeHandler.java,重写方法
package sax; import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Map; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory; public class SaxXMLTest {
public static void main(String[] args) throws SAXException, ParserConfigurationException, IOException{
readXMLBySaxParser();
readXMLByXMLReader();
} private static void readXMLBySaxParser() throws ParserConfigurationException,
SAXException, IOException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser(); EmployeeHandler handler = new EmployeeHandler("employee");
parser.parse("src\\sax\\employees.xml", handler);
List<Map<String, String>> employees = handler.getEmployees();
System.out.println(employees.toString());
} private static void readXMLByXMLReader() throws SAXException,
SAXNotRecognizedException, SAXNotSupportedException, FileNotFoundException, IOException {
XMLReader reader = XMLReaderFactory.createXMLReader();
//打开解析器验证的功能
reader.setFeature("http://xml.org/sax/features/validation",true);
//开启明明空间特性
reader.setFeature("http://xml.org/sax/features/namespaces",true);
EmployeeHandler handler = new EmployeeHandler("employee");
reader.setContentHandler(handler);
reader.parse(new InputSource(new BufferedInputStream(new FileInputStream("src\\sax\\employees.xml"))));
}
}
3.测试类 SaxXMLTest.java,用SAXParser和XMLReader两种方式解析
package sax; import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Map; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory; public class SaxXMLTest {
public static void main(String[] args) throws SAXException, ParserConfigurationException, IOException{
readXMLByHandler();
readXMLByXMLReader();
} private static void readXMLByHandler() throws ParserConfigurationException,
SAXException, IOException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser(); EmployeeHandler handler = new EmployeeHandler("employee");
parser.parse("src\\sax\\employees.xml", handler);
List<Map<String, String>> employees = handler.getEmployees();
System.out.println(employees.toString());
} private static void readXMLByXMLReader() throws SAXException,
SAXNotRecognizedException, SAXNotSupportedException, FileNotFoundException, IOException {
XMLReader reader = XMLReaderFactory.createXMLReader();
//打开解析器验证的功能
reader.setFeature("http://xml.org/sax/features/validation",true);
//开启明明空间特性
reader.setFeature("http://xml.org/sax/features/namespaces",true);
EmployeeHandler handler = new EmployeeHandler("employee");
reader.setContentHandler(handler);
reader.parse(new InputSource(new BufferedInputStream(new FileInputStream("src\\sax\\employees.xml"))));
}
}
SAX解析XML-例子的更多相关文章
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
- DOM&SAX解析XML
在上一篇随笔中分析了xml以及它的两种验证方式.我们有了xml,但是里面的内容要怎么才能得到呢?如果得不到的话,那么还是没用的,解析xml的方式主要有DOM跟SAX,其中DOM是W3C官方的解析方式, ...
- 用SAX解析xml文件,java
(此文为(https://www.imooc.com/video/4482)之随笔) 1.用SAX解析xml文件大致分为三步 写了一个XML文件作为例子 (1)main方法代码如下: import j ...
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- cocos2d-x 3.0 使用Sax解析xml文件(中国显示器问题解决)
今天是个好日子.我以为事情可以变得,明天是个好日子.打开门儿春风... 恩,听着歌写文档生活就是这么享受. 今天曾经的邻居大神突然在qq上赞了我一下,这让我异常激动啊.. 这还要从前前前几天说起,那会 ...
- SAX解析xml浅析
SAX解析XML文件采用事件驱动的方式进行,也就是说,SAX是逐行扫描文件,遇到符合条件的设定条件后就会触发特定的事件,回调你写好的事件处理程序.使用SAX的优势在于其解析速度较快,占用内存较少(相对 ...
- JavaWeb学习日记----SAX解析XML
1.SAX解析XML文档的方式: 与DOM方式解析不同,DOM方式解析是根据XML的层级结构在内存中分配一个树形结构,把xml的标签,属性和文本都封装成对象.优点是可以很方便实现增删改操作.缺点是,如 ...
- Python:使用基于事件驱动的SAX解析XML
SAX的特点: 是基于事件的 API 在一个比 DOM 低的级别上操作 为您提供比 DOM 更多的控制 几乎总是比 DOM 更有效率 但不幸的是,需要比 DOM 更多的工作 基于对象和基于事件的接口 ...
- Android SAX解析XML
本篇讲解一下SAX解析XML这种方式,首先来看一下它的基本介绍: SAX是一种以事件驱动的XML API,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它是种解析速度 ...
随机推荐
- 安卓小程序的一次bug调试,报错:java.lang.NullPointerException,logcat学习
做实验的时候,调试了很久后模拟器执行后,app还是会崩溃并停止运行,错误如下. 因为初学,所以也不知道怎么使用调试工具,也不懂看日志,经过学习后尝试这查看了LogCat日志上面有这样的提示: 其中引起 ...
- virtualenv杂记
Linux复制命令: cp sourcedir destdir (如果是复制文件夹,增加参数 -a) Linux重命名命令:mv 旧的名称 新的名称 通过xshell查看虚拟机的配置:通过命令 ...
- SQL 初级教程学习(二)
1.SQL 语句从 "Websites" 表中选取头两条记录: SELECT * FROM Websites LIMIT 2; SELECT TOP 50 PERCENT * FR ...
- [Usaco2008 Feb]Eating Together麻烦的聚餐
Description 为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想所有第3批就餐的奶牛排在队尾,队伍的前端由设定为第1批就餐的奶牛占据,中间的 ...
- [POI2009]SLO
Description 对于一个1-N的排列(ai),每次你可以交换两个数ax与ay(x<>y),代价为W(ax)+W(ay) 若干次交换的代价为每次交换的代价之和.请问将(ai)变为(b ...
- ACM输入外挂
一.什么是输入挂 scanf的输入速度不cin快得多,那么有没有比scanf更快的东西呢?这就是要用到输入挂了. 二.什么时候使用输入挂 当输入规模达到1x10^6次方的时候,就需要输入挂,否则很可能 ...
- 状压DP+记忆化搜索 UVA 1252 Twenty Questions
题目传送门 /* 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1.答案对错集合为s2时,还要问几次才能区分出来 若 ...
- ACM_回文素数
回文素数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 131号是一个主回文,因为它是一个素数和一个回文(当向后读时,它是相同的 ...
- C# 判断文件和文件夹是否存在并创建
C# 判断文件和文件夹是否存在并创建 using System; using System.Data; using System.Configuration; using System.Collect ...
- 获取select里面option所有的值
1.HTML结构 <select id="test"> <option value="option-1">option-1</op ...