我正在尝试实现一个简单的 SAX 解析器。
public class XmlParser {
public parseXML(File inputFile) {
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser parser = factory.newSAXParser();
SaxHandler handler = new SaxHandler();
parser.parse(inputFile, handler);
} ....
}
private static class SaxHandler extends DefaultHandler {
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException {
}
public void characters(char ch[], int start, int length)
throws SAXException {
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
}
}
}
问题是我似乎无法覆盖 startElement 方法。当我添加 @Override 时,出现“方法不覆盖或实现父类(super class)型的方法”消息。除 startElement 外,所有其他处理程序均已正确调用。
谢谢。
最佳答案
我打赌你对 Attributes
类的导入有问题,应该是 org.xml.sax.Attributes
.
总是使用@Override
,它旨在保护您免受这个确切问题的困扰。
关于Java SAX 解析 : Can't override DefauldHandler's startElement(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027757/