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 { }