SAXParseIPInfo.java~69~
上传用户:liming9091
上传日期:2014-10-27
资源大小:3376k
文件大小:3k
源码类别:

Java编程

开发平台:

Java

  1. package tsinghuaip;
  2. import org.xml.sax.*;
  3. import org.xml.sax.helpers.*;
  4. import javax.xml.parsers.SAXParserFactory;
  5. import javax.xml.parsers.SAXParser;
  6. import java.util.*;
  7. public class SAXParseIPInfo {
  8.     private Vector startIPVector;
  9.     private Vector endIPVector;
  10.     private Vector localVector;
  11.     public SAXParseIPInfo() {
  12.         startIPVector = new Vector();
  13.         endIPVector = new Vector();
  14.         localVector = new Vector();
  15.     }
  16.     public void SetStartIPVector(Vector vector) {
  17.         this.startIPVector = vector;
  18.     }
  19.     public void SetEndIPVector(Vector vector) {
  20.         this.endIPVector = vector;
  21.     }
  22.     public void SetLocalVector(Vector vector) {
  23.         this.localVector = vector;
  24.     }
  25.     public Vector GetStartIPVector() {
  26.         return this.startIPVector;
  27.     }
  28.     public Vector GetEndIPVector() {
  29.         return this.endIPVector;
  30.     }
  31.     public Vector GetLocalVector() {
  32.         return this.localVector;
  33.     }
  34.     public void ParseIPInfo() throws Exception {
  35.         SAXParserFactory spf = SAXParserFactory.newInstance();
  36.         SAXParser parser = spf.newSAXParser();
  37.         XMLReader xmlReader = parser.getXMLReader();
  38.         IPInfoSAXHandler ipInfoHandler = new IPInfoSAXHandler();
  39.         xmlReader.setContentHandler(ipInfoHandler);
  40.         InputSource source = new InputSource("TsinghuaIPAssign.xml");
  41.         source.setEncoding("UTF-16");
  42.         xmlReader.parse(source);
  43.         startIPVector = ipInfoHandler.GetStartIPVector();
  44.         endIPVector = ipInfoHandler.GetEndIPVector();
  45.         localVector = ipInfoHandler.GetLocalVector();
  46.     }
  47. }
  48. class IPInfoSAXHandler extends DefaultHandler {
  49.     private String strElementName;
  50.     private Vector startIPVector;
  51.     private Vector endIPVector;
  52.     private Vector localVector;
  53.     public IPInfoSAXHandler() {
  54.         startIPVector = new Vector();
  55.         endIPVector = new Vector();
  56.         localVector = new Vector();
  57.     }
  58.     public void characters(char ch[], int start, int length) throws
  59.         SAXException {
  60.         String strData = new String(ch, start, length).trim();
  61.         if (strData.length() == 0)
  62.             return;
  63.         try {
  64. //            byte[] bytes = strData.getBytes();
  65.  //            strData = new String(bytes,"GB2312");
  66.              strData = new String(strData.getBytes("GB2312"));
  67.             if (this.strElementName.indexOf("STARTIP") >= 0)
  68.                 startIPVector.addElement(strData);
  69.             if (this.strElementName.indexOf("ENDIP") >= 0)
  70.                 endIPVector.addElement(strData);
  71.             if (this.strElementName.indexOf("LOCAL") >= 0)
  72.                 localVector.addElement(strData);
  73.         }
  74.         catch (Exception e) {
  75.             e.printStackTrace();
  76.         }
  77.     }
  78.     public void startElement(String uri, String localName, String qName,
  79.                              Attributes atts) throws SAXException {
  80.         this.strElementName = qName;
  81.     }
  82.     public void endDocument() throws SAXException {
  83.     }
  84.     public Vector GetStartIPVector() {
  85.         return this.startIPVector;
  86.     }
  87.     public Vector GetEndIPVector() {
  88.         return this.endIPVector;
  89.     }
  90.     public Vector GetLocalVector() {
  91.         return this.localVector;
  92.     }
  93. }