使用SAX读取XML文件
1.原理
SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。
2.优缺点
优点:
可以边读边解析,当XML文件过大时候相较于DOM消耗的内存较小
缺点:
只能读取不能修改
只能按顺序读取不走回头路
3.解析步骤
1、得到xml文件对应的资源,可以是xml的输入流,文件和uri
2、得到SAX解析工厂(SAXParserFactory)
3、由解析工厂获得一个SAX解析器(SAXParser)
4、传入输入流和handler给解析器,调用parse()解析
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//得到SAX解析工厂(SAXParserFactory)
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
//获得一个SAX解析器(SAXParser)
SAXParser saxParser = saxParserFactory.newSAXParser();
//传入输出流和handler给解析器,调用parse解析
MyHandle myHandle = new SAXReadXml().new MyHandle();
saxParser.parse(SAXReadXml.class.getResourceAsStream("/person.xml"),myHandle);
for (Person person : myHandle.persons){
System.out.println(person);
}
}