SAX解析XML

Java代码 复制代码
  1. package com.xml.parseXml;   
  2.   
  3. import java.io.InputStream;   
  4. import java.util.Stack;   
  5.   
  6. import javax.xml.parsers.SAXParser;   
  7. import javax.xml.parsers.SAXParserFactory;   
  8.   
  9. import org.xml.sax.Attributes;   
  10. import org.xml.sax.InputSource;   
  11. import org.xml.sax.SAXException;   
  12. import org.xml.sax.helpers.DefaultHandler;   
  13.   
  14. import com.xml.bean.Address;   
  15. import com.xml.bean.ReadXmlFileStream;   
  16.   
  17. public class SAXParseXml extends DefaultHandler {   
  18.   
  19.   
  20.     private static Address address = new Address();   
  21.   
  22.     private Stack tags = new Stack();   
  23.   
  24.     public SAXParseXml() {   
  25.   
  26.     }   
  27.   
  28.     @Override  
  29.     public void characters(char[] ch, int start, int length)   
  30.             throws SAXException {   
  31.   
  32.         String tag = (String) tags.peek();   
  33.         if (tag.equals("no")) {   
  34.             address.setNo(new String(ch, start, length));   
  35.             System.out.println(address.getNo());   
  36.         }   
  37.         if (tag.equals("addr")) {   
  38.             address.setAddr(new String(ch, start, length));   
  39.             System.out.println(address.getAddr());   
  40.         }   
  41.     }   
  42.   
  43.     @Override  
  44.     public void startElement(String uri, String localName, String qName,   
  45.             Attributes attrs) throws SAXException {   
  46.         tags.push(qName);   
  47.     }   
  48.   
  49.     public static void main(String[] args) {   
  50.   
  51.         long lasting = System.currentTimeMillis();   
  52.   
  53.         try {   
  54.             SAXParserFactory factory = SAXParserFactory.newInstance();   
  55.             SAXParser sp = factory.newSAXParser();   
  56.             SAXParseXml reader = new SAXParseXml();   
  57.             InputStream in = ReadXmlFileStream.getXmlFileStream();   
  58.             sp.parse(new InputSource(in), reader);   
  59.             System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)   
  60.                     + " 毫秒");   
  61.   
  62.         } catch (Exception e) {   
  63.             e.printStackTrace();   
  64.         }   
  65.     }   
  66.   
  67. }  
Java代码 复制代码
  1. package com.xml.parseXml;   
  2.   
  3. import java.io.InputStream;   
  4. import java.util.Stack;   
  5.   
  6. import javax.xml.parsers.SAXParser;   
  7. import javax.xml.parsers.SAXParserFactory;   
  8.   
  9. import org.xml.sax.Attributes;   
  10. import org.xml.sax.InputSource;   
  11. import org.xml.sax.SAXException;   
  12. import org.xml.sax.helpers.DefaultHandler;   
  13.   
  14. import com.xml.bean.Address;   
  15. import com.xml.bean.ReadXmlFileStream;   
  16.   
  17. public class SAXParseXml extends DefaultHandler {   
  18.   
  19.   
  20.     private static Address address = new Address();   
  21.   
  22.     private Stack tags = new Stack();   
  23.   
  24.     public SAXParseXml() {   
  25.   
  26.     }   
  27.   
  28.     @Override  
  29.     public void characters(char[] ch, int start, int length)   
  30.             throws SAXException {   
  31.   
  32.         String tag = (String) tags.peek();   
  33.         if (tag.equals("no")) {   
  34.             address.setNo(new String(ch, start, length));   
  35.             System.out.println(address.getNo());   
  36.         }   
  37.         if (tag.equals("addr")) {   
  38.             address.setAddr(new String(ch, start, length));   
  39.             System.out.println(address.getAddr());   
  40.         }   
  41.     }   
  42.   
  43.     @Override  
  44.     public void startElement(String uri, String localName, String qName,   
  45.             Attributes attrs) throws SAXException {   
  46.         tags.push(qName);   
  47.     }   
  48.   
  49.     public static void main(String[] args) {   
  50.   
  51.         long lasting = System.currentTimeMillis();   
  52.   
  53.         try {   
  54.             SAXParserFactory factory = SAXParserFactory.newInstance();   
  55.             SAXParser sp = factory.newSAXParser();   
  56.             SAXParseXml reader = new SAXParseXml();   
  57.             InputStream in = ReadXmlFileStream.getXmlFileStream();   
  58.             sp.parse(new InputSource(in), reader);   
  59.             System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)   
  60.                     + " 毫秒");   
  61.   
  62.         } catch (Exception e) {   
  63.             e.printStackTrace();   
  64.         }   
  65.     }   
  66.   
  67. }  

你可能感兴趣的:(java,xml,bean)