SAX(XML 的简单 API)将在这里为您提供帮助。
与 DOM 解析器不同,SAX 解析器不创建 XML 文档的内存表示,因此速度更快,使用的内存更少。相反,SAX 解析器通过调用回调来通知客户端 XML 文档结构,也就是说,通过调用
org.xml.sax.helpers.DefaultHandler
提供给解析器的实例上的方法。
这是一个示例实现:
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
DefaultHandler handler = new MyHandler();
parser.parse("file.xml", handler);
您在哪里MyHandler
定义生成文档/元素的开始/结束等事件时要采取的操作。
class MyHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
}
@Override
public void endDocument() throws SAXException {
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
}
// To take specific actions for each chunk of character data (such as
// adding the data to a node or buffer, or printing it to a file).
@Override
public void characters(char ch[], int start, int length)
throws SAXException {
}
}