SAXParseIPInfo.java~65~
上传用户: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.         xmlReader.parse(source);
  42.         startIPVector = ipInfoHandler.GetStartIPVector();
  43.         endIPVector = ipInfoHandler.GetEndIPVector();
  44.         localVector = ipInfoHandler.GetLocalVector();
  45.     }
  46. }
  47. class IPInfoSAXHandler extends DefaultHandler {
  48.     private String strElementName;
  49.     private Vector startIPVector;
  50.     private Vector endIPVector;
  51.     private Vector localVector;
  52.     public IPInfoSAXHandler() {
  53.         startIPVector = new Vector();
  54.         endIPVector = new Vector();
  55.         localVector = new Vector();
  56.     }
  57.     public void characters(char ch[], int start, int length) throws
  58.         SAXException {
  59.         String strData = new String(ch, start, length).trim();
  60.         if (strData.length() == 0)
  61.             return;
  62.         try {
  63. //            byte[] bytes = strData.getBytes();
  64.  //            strData = new String(bytes,"GB2312");
  65.              strData = new String(strData.getBytes("GB2312"));
  66.             if (this.strElementName.indexOf("STARTIP") >= 0)
  67.                 startIPVector.addElement(strData);
  68.             if (this.strElementName.indexOf("ENDIP") >= 0)
  69.                 endIPVector.addElement(strData);
  70.             if (this.strElementName.indexOf("LOCAL") >= 0)
  71.                 localVector.addElement(strData);
  72.         }
  73.         catch (Exception e) {
  74.             e.printStackTrace();
  75.         }
  76.     }
  77.     public void startElement(String uri, String localName, String qName,
  78.                              Attributes atts) throws SAXException {
  79.         this.strElementName = qName;
  80.     }
  81.     public void endDocument() throws SAXException {
  82.     }
  83.     public Vector GetStartIPVector() {
  84.         return this.startIPVector;
  85.     }
  86.     public Vector GetEndIPVector() {
  87.         return this.endIPVector;
  88.     }
  89.     public Vector GetLocalVector() {
  90.         return this.localVector;
  91.     }
  92. }