Java SAX 解析 : Can't override DefauldHandler's startElement()

标签 java sax

我正在尝试实现一个简单的 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/

相关文章:

java - 启动时解析camelContext.xml文件时出现空指针

java - Android java Binder 失败的 Binder 交易

java - StAX 不检索属性的数据

python - 使用 SAX 将大型 XML 文件分区为 Python 中的子文件

java - instanceof 和泛型的编译错误

java - 如何使用Geotools编写GML解析器?

java - 如何在进程终止时执行操作?

java - Android:简单的 XML SAX 解析器 - 反复显示相同的数据

android - SAX、StringBuilder 和内存泄漏

Android:使用 SAX 解析 XML 时出错 - 由于 "length"void 中的错误 "characters"导致文本被截断