⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saxparseipinfo.java~66~

📁 用JAVA编写的TsinghuaIP功能的源代码
💻 JAVA~66~
字号:
package tsinghuaip;

import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import java.util.*;

public class SAXParseIPInfo {
    private Vector startIPVector;
    private Vector endIPVector;
    private Vector localVector;

    public SAXParseIPInfo() {
        startIPVector = new Vector();
        endIPVector = new Vector();
        localVector = new Vector();
    }

    public void SetStartIPVector(Vector vector) {
        this.startIPVector = vector;
    }

    public void SetEndIPVector(Vector vector) {
        this.endIPVector = vector;
    }

    public void SetLocalVector(Vector vector) {
        this.localVector = vector;
    }

    public Vector GetStartIPVector() {
        return this.startIPVector;
    }

    public Vector GetEndIPVector() {
        return this.endIPVector;
    }

    public Vector GetLocalVector() {
        return this.localVector;
    }

    public void ParseIPInfo() throws Exception {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser parser = spf.newSAXParser();
        XMLReader xmlReader = parser.getXMLReader();
        IPInfoSAXHandler ipInfoHandler = new IPInfoSAXHandler();
        xmlReader.setContentHandler(ipInfoHandler);
        InputSource source = new InputSource("TsinghuaIPAssign.xml");
        source.setEncoding("GB2312");
        xmlReader.parse(source);

        startIPVector = ipInfoHandler.GetStartIPVector();
        endIPVector = ipInfoHandler.GetEndIPVector();
        localVector = ipInfoHandler.GetLocalVector();
    }
}

class IPInfoSAXHandler extends DefaultHandler {
    private String strElementName;
    private Vector startIPVector;
    private Vector endIPVector;
    private Vector localVector;

    public IPInfoSAXHandler() {
        startIPVector = new Vector();
        endIPVector = new Vector();
        localVector = new Vector();
    }

    public void characters(char ch[], int start, int length) throws
        SAXException {
        String strData = new String(ch, start, length).trim();
        if (strData.length() == 0)
            return;
        try {
//            byte[] bytes = strData.getBytes();
 //            strData = new String(bytes,"GB2312");
             strData = new String(strData.getBytes("GB2312"));
            if (this.strElementName.indexOf("STARTIP") >= 0)
                startIPVector.addElement(strData);
            if (this.strElementName.indexOf("ENDIP") >= 0)
                endIPVector.addElement(strData);
            if (this.strElementName.indexOf("LOCAL") >= 0)
                localVector.addElement(strData);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void startElement(String uri, String localName, String qName,
                             Attributes atts) throws SAXException {
        this.strElementName = qName;
    }

    public void endDocument() throws SAXException {
    }

    public Vector GetStartIPVector() {
        return this.startIPVector;
    }

    public Vector GetEndIPVector() {
        return this.endIPVector;
    }

    public Vector GetLocalVector() {
        return this.localVector;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -