📄 tinyparser.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 + -