我正在尝试使用java中的sax读取xml文件。我只得到了功能的输出,但我找不到startElement的错误。
这是我的经纪人:
public class XMLHandler extends DefaultHandler {
public void startElement(String uri, String localName,String qName, Attributes attributes) throws SAXException {
System.out.println( "SAX Event: START ELEMENT[ " + localName + " ]" );
}
public void endElement( String namespaceURI, String localName, String qName ) throws SAXException {
System.out.println( "SAX Event: END ELEMENT[ " + localName + " ]" );
}
}
我用以下代码测试它:
public static void main(String args[]) throws ParserConfigurationException, SAXException, IOException
{
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
SAXParser saxParser = spf.newSAXParser();
saxParser.parse("http://www.w3schools.com/xml/note.xml", new XMLHandler());
}
我使用w3schools的示例XML文件:
<!-- Edited by XMLSpy® -->
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
这是我的输出:
SAX Event: END ELEMENT[ to ]
SAX Event: END ELEMENT[ from ]
SAX Event: END ELEMENT[ heading ]
SAX Event: END ELEMENT[ body ]
SAX Event: END ELEMENT[ note ]
我真的不明白我在这里做错了什么......
答案 0 :(得分:2)
我猜你的方法原型是不正确的。这就是为什么你应该总是使用@Override注释。你可能导入了错误的Attributes类?