ParserXml.java~1~
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package northwindcase;
  2. import java.io.IOException;
  3. import org.xml.sax.*;
  4. import org.xml.sax.helpers.*;
  5. import javax.xml.parsers.*;
  6. import java.util.*;
  7. public class ParserXml extends DefaultHandler {
  8.   private String currentName;
  9.   private String currentValue;
  10.   private String fileName;
  11.   private Properties props;
  12.   public ParserXml(String fileName) {
  13.      props = new Properties();
  14.      this.fileName = fileName;
  15.      parse();
  16.   }
  17.   public Properties getProps() {
  18.     return props;
  19.   }
  20.   private void parse() {
  21.     try {
  22.       SAXParserFactory parserFactory = SAXParserFactory.newInstance();
  23.       parserFactory.setValidating(false);
  24.       parserFactory.setNamespaceAware(false);
  25.       SAXParser parser = parserFactory.newSAXParser();
  26.       parser.parse(fileName,this);
  27.       parserFactory = null;
  28.       parser = null;
  29.     }
  30.     catch(IOException ex) {
  31.       ex.printStackTrace();
  32.     }
  33.     catch(SAXException ex) {
  34.       ex.printStackTrace();
  35.     }
  36.     catch(ParserConfigurationException ex) {
  37.       ex.printStackTrace();
  38.     }
  39.     catch(FactoryConfigurationError ex) {
  40.       ex.printStackTrace();
  41.     }
  42.   }
  43.   public void characters(char[] ch, int start, int length) throws SAXException {
  44.     currentValue = new String(ch,start,length).trim();
  45.   }
  46.   public void endElement(String uri, String localName, String qName) throws SAXException {
  47.     if (currentValue.equals("")) return;
  48.     props.put(currentName,currentValue);
  49.   }
  50.   public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
  51.     currentName = qName;
  52.   }
  53. }