SAX解析XML文件的步驟:
第一步:通過SAX工廠取得SAX解析器
- SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();//取得SAX解析的工廠
- SAXParser saxParser = saxParserFactory.newSAXParser();//取得SAX解析器
第二步:調用SAX解析器的方法parse 對xml進行解析
- PersonParser personParser = new PersonParser();
- saxParser.parse(inStream, personParser); // 當解析到相應的XML文件時就會觸發事件personParser對應的回調方法
第三步:實現第二步的personParser對應的回調方法
- //繼承DefaultHandler 重寫觸發事件的方法,自己寫實現方法
-
- private final class PersonParser extends DefaultHandler{
-
- //當解析到<?xml .....>標簽時,該函數會被執行
- @Override
- public void startDocument() throws SAXException {
- persons = new ArrayList<Person>();
- }
-
- @Override
- /*
- * uri 是命名空間的uri
- * localName 是不帶命名空間的後綴名
- * qName 是帶命名空間的名字
- * attributes 是存放標簽的屬性值
- */
-
- //當遇到元素結點時,該函數被執行
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
-
- }
- //當遇到文本結點時,該函數被執行
- @Override
- public void characters(char[] ch, int start, int length)
- throws SAXException {
- }
-
- //當遇到元素結點結束時,該函數被執行
- @Override
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- }