SAX解析:
SAX不同于Dom.它是小口慢咽.一点一点的将文件读取解析.在读取大文件的时候相对于Dom就有明显的优势.
解析原理:一个元素一个元素的解析,解析到一个元素调用相应的方法.startDocument() 文档开始 endDocument 文档结束 startElement 元素开始 endElement元素结束 characters 文本内容
<span style="font-size:18px;">public class SaxParser {
@Test
public void saxParser() throws Exception{
//获取工厂
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
//获取XMLreader,通过reader可以设置contenHhandler
XMLReader xmlReader = saxParser.getXMLReader();
//给xmlrReader设置contentHandler.若是实现接口contentHandle.有很多方法需要重写.所以
//采用继承默认的实现DefaultHandle
xmlReader.setContentHandler(new MyHandler());
xmlReader.parse("smartisan.xml");
}
private class MyHandler extends DefaultHandler{
@Override
public void startDocument() throws SAXException {
System.out.println("文档开始");
}
@Override
public void endDocument() throws SAXException {
System.out.println("文档结束");
}
@Override
public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {
System.out.println("开始标签<"+qName+">");
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println("结束标签</"+qName+">");
}
@Override
public void characters(char[] ch, int start, int length)throws SAXException {
String string = new String(ch, start, length);
System.out.println(string);
}
}</span>