SAX解析xml文件
程序员文章站
2022-05-27 23:44:35
...
SAX方式解析xml步骤
1.通过SAXPa rserFactory的静态newInstance()方法获取
SAXPa rserFactory实例factory
2.通过SAXPa rserFactory实例的newSAXPa rser()方法返回
SAXParser实例pa rser
1.通过SAXPa rserFactory的静态newInstance()方法获取
SAXPa rserFactory实例factory
2.通过SAXPa rserFactory实例的newSAXPa rser()方法返回
SAXParser实例pa rser
3.通过parser的parse方法解析XML(参数中需要DefaultHandler实例)
4.创建一个类继承DefaultHandler,重写其中的一些方法进
行业务处理并创建这个类的实例handler
4.创建一个类继承DefaultHandler,重写其中的一些方法进
行业务处理并创建这个类的实例handler
一至三步如下
package sax;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
public class saxtest {
public static void main(String[] args) {
//获取一个SAXParserFactory实例
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
//通过SAXParserFactory实例获取SAXParser实例
SAXParser sp = spf.newSAXParser();
//创建SAXParserHandler实例
SaxDefaultHandler sdh = new SaxDefaultHandler();
sp.parse("books.xml", sdh);
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后一步如下
package sax;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxDefaultHandler extends DefaultHandler {
int bookNum=0;
/*
* 用来遍历开始标签,及解析XML元素属性,及获取节点名
*/
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
//知道属性名称及个数
// if(qName.equals("book")){
// String value = attributes.getValue("id");
// System.out.println("该书ID为"+value);
// }
//不知道属性名称及个数
if(qName.equals("book")){
bookNum++;
System.out.println("=========开始解析第"+bookNum+"本书===========");
int num=attributes.getLength();
for(int i=0 ;i
上一篇: 28-windows10下mysql解压版本的安装
下一篇: ssh实现端口转发