1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
// 获取一个SAXParserFactory实例
SAXParserFactory factory=SAXParserFactory.newInstance();
//通过factory获取SAXParser实例
try {
SAXParser parser=factory.newSAXParser();
//创建SAXParserHander对象
SAXParserHander hander=new SAXParserHander();
parser.parse("books.xml", hander);
} catch (Exception e) {
e.printStackTrace();
}
}
package com.fcy.sax;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXParserHander extends DefaultHandler {
//用来遍历xml文件的开始标签
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
//开始解析book元素的属性
if(qName.equals("book")){
//已知book元素下属性的名称,根据属性名称获取属性值
// String value=attributes.getValue("id");
// System.out.println("book的属性值为:"+value);
//不知道book元素下属性值和个数
int num=attributes.getLength();
for(int i = 0;i<num;i++){
System.out.print("book元素的第"+(i+1)+"个属性名是:"+attributes.getQName(i));
System.out.println("--值:"+attributes.getValue(i));
}
}else if(!qName.equals("bookstore")){
System.out.print("节点名:"+qName);
}
}
//用来变量xml文件的结束标签
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
super.endElement(uri, localName, qName);
//判断是否真的一本书是否遍历结束
if(qName.equals("book")){
System.out.println("遍历谋一本书结束");
}
}
//获得节点值
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
super.characters(ch, start, length);
String value=new String(ch, start, length);
if(!value.trim().equals("")){
System.out.println("--值:"+value);
}
}
//用来标志解析开始
@Override
public void startDocument() throws SAXException {
super.startDocument();
System.out.println("sax解析开始");
}
//用来标志解析结束
@Override
public void endDocument() throws SAXException {
super.endDocument();
System.out.println("sax解析结束");
}
}
分享到:
相关推荐
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用
Sax解析XML文件解
Servlet利用SAX解析XML文档,JAX,JSWDP,Servlet利用SAX解析XML文档
Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有...
Java SAX解析Xml Demo(详细注释)
绝对可用的SAX解析XML文件项目,费了九牛二虎之力,才找到的好资源,特与大家共享出来。直接导入eclipse就可运行,无需任何配置。
DOM和SAX解析XML文档
利用SAX解析XML文档,实现对南工自习室的解析,解决自习室难找的问题
SAX解析xml文件并显示在android虚拟机上实例源码,可以学习一下SAX解析技术
SDcard数据访问SAX解析XML文件
下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...
SAX解析XML文件以及对取出的id放进数组进行冒泡排序(从大到小排序和从小到大排序)
dom,dom4j,sax解析xml 文件经典实例,内置详细注解
从Tomcat下载xml并使用SAX解析xml文件
android用sax解析xml文件实例源码
java学习笔记——使用DOM解析XML和使用SAX解析XML