SAX解析XML
SAX采用事件处理方式解析XML,SAX解析XML文件涉及两个部分:解析器和事件处理器SAX解析器在XML文档时,只要解析到XML文档的一个组成部分(如元素的开始,元素的结束,文本内容...),就会调用事件处理器的一个处理方法,并且会把当前解析到的XML内容当做参数传递给被调用的方法。
事件处理器由用户自定义,通过事件处理器中的方法参数,就可以得到SAX解析器解析到的内容,对内容进行操作。
SAX解析器由SAX解析器工厂SAXParserFactory实例提供,SAXParserFactory工厂是抽象类,通过它的静态方法获取SAXParserFactory实例
SAX解析器可以获得一个XML读取器,给XML读取器设置了事件处理器后,就可以解析xml文档了。
1. 使用SAXParserFactory创建SAX解析工厂
SAXParserFactoryspf = SAXParserFactory.newInstance();
2. 通过SAX解析工厂得到解析器对象
SAXParser sp =spf.newSAXParser();
3. 通过解析器对象得到一个XML的读取器
XMLReaderxmlReader = sp.getXMLReader();
4. 设置读取器的事件处理器
xmlReader.setContentHandler(new BookParserHandler());//BookParserHandler 用户自定义类,实 现ContentHandler接口,或者继承实现ContentHandler接口的子类
5. 解析xml文件
xmlReader.parse("book.xml");