您的位置:首页 > 其它

SAX解析XML文档

2015-07-23 19:53 405 查看
SAX解析XML主要是事件驱动方式从第一个开始解析 不利于快速查找解析

package com.MySax;

import java.io.File;
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 {
//SAX  解析XML文档

public static void main(String[] args) {
File file=new File("e:\\22.txt");
//  生成一个SAX工厂
SAXParserFactory spf=SAXParserFactory.newInstance();
try {
SAXParser parser=spf.newSAXParser();
MySAXHandler handler=new MySAXHandler();
parser.parse(file, handler);
} catch (ParserConfigurationException | SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


package com.MySax;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MySAXHandler extends DefaultHandler{
//  创建一个类 继承于DefaultHandler
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
System.out.println("解析文档开始");
}

@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
System.out.println("解析文档结束");
}

@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);
System.out.println("开始标签"+qName);
if (qName.equals("Weather")) {
System.out.println(attributes.getValue("name"));
}

}

@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
System.out.println("结束标签"+qName);
}

@Override
public void characters(char[] ch, int start, int length) throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
if (ch!=null) {
System.out.println("标签内容"+new String(ch,start,length));
}else {
System.out.println("null");
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: