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

📄 tinyparser.java

📁 pic 单片机红外接收分析仪的资料
💻 JAVA
字号:
package pb.xml.parser.tiny;


import java.io.InputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Enumeration;
import java.util.Hashtable;

import gd.xml.ParseException;
import gd.xml.XMLParser;
import gd.xml.XMLResponder;


import pb.xml.parser.Handler;
import pb.xml.parser.Parser;


public class TinyParser extends Parser {
	class TinyHandler implements XMLResponder {
	    private String prefix;
        private String filename;
        private InputStream inp = null;

        TinyHandler(String fname) {
        	filename = fname;
        }

        TinyHandler(InputStream is) {
        	inp = is;
        }

    public void recordNotationDeclaration(String name, String pubID, String sysID) throws ParseException {
    }

    public void recordEntityDeclaration(String name, String value, String pubID, String sysID, String notation) throws ParseException {
    }

    public void recordElementDeclaration(String name, String content) throws ParseException {
    }

    public void recordAttlistDeclaration(String element, String attr, boolean notation, String type, String defmod, String def) throws ParseException {
    }

    public void recordDoctypeDeclaration(String name, String pubID, String sysID) throws ParseException {
    }



    /* DOC METHDODS */

    public void recordDocStart() {
    }

    public void recordDocEnd() {
    }

    public void recordElementStart(String name, Hashtable attr)
    	throws ParseException {

        if (attr == null)
        	attr = new Hashtable();
            
    	_startElement(name, attr);
    }

    public void recordElementEnd(String name) throws ParseException {
    	_endElement(name);
    }

    public void recordPI(String name, String pValue) {
    }

    public void recordCharData(String charData) {
    	_text(charData);
	}

    public void recordComment(String comment) {
    }



    /* INPUT METHODS */

	    public InputStream getDocumentStream() throws ParseException {
			try {
            	return inp == null ? new FileInputStream(filename)
                	: inp;
            }
			catch (FileNotFoundException e) {
            	throw new ParseException("could not find the specified file");
            }
	    }

    public InputStream resolveExternalEntity(String name, String pubID, String sysID) throws ParseException {
	if (sysID!=null) {
	    File f = new File((new File(filename)).getParent(), sysID);
	    try { return new FileInputStream(f); }
	    catch (FileNotFoundException e) { throw new ParseException("file not found ("+f+")"); }
	}
	else return null;
    }

    public InputStream resolveDTDEntity(String name, String pubID, String sysID) throws ParseException {
	return resolveExternalEntity(name, pubID, sysID);
    }

    }

	public TinyParser(String fileName, Handler handler) {
    	super(fileName, handler);
		try {
		    XMLParser xp = new XMLParser();
	    	xp.parseXML(new TinyHandler(fileName));
		}
		catch (ParseException e) {
        	System.out.println(e.toString());
        }
    }

	public TinyParser(InputStream is, Handler handler) {
    	super(is, handler);
		try {
		    XMLParser xp = new XMLParser();
	    	xp.parseXML(new TinyHandler(is));
		}
		catch (ParseException e) {
        	System.out.println(e.toString());
        }
    }
}

⌨️ 快捷键说明

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