📅  最后修改于: 2023-12-03 15:34:49.040000             🧑  作者: Mango
SAX (Simple API for XML)是一种基于事件驱动的解析XML文档的API。使用SAX解析器,程序员不需要将整个文档加载进内存,可以边读边处理XML文档,适合处理大型XML文档,同时也很快速。
SAXParserFactory fac = SAXParserFactory.newInstance();
SAXParser parser = fac.newSAXParser();
parser.parse(new File("file.xml"), new MyHandler());
newSAXParser()
方法获取SAXParser实例parse()
方法解析XML文档需要一个SAX事件处理器(MyHandler),来响应SAX解析器发送的事件。在此处,可以自定义事件处理器。
class MyHandler extends DefaultHandler {
boolean inTitle = false;
@Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
if (qName.equals("title")) {
inTitle = true;
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if (inTitle) {
System.out.println("Title: " + new String(ch, start, length));
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (qName.equals("title")) {
inTitle = false;
}
}
}
startDocument()
解析器开始解析文档时调用endDocument()
解析器解析文档结束时调用startElement()
开始解析元素时调用endElement()
结束解析元素时调用characters()
解析文本内容时调用