gpt4 book ai didi

java - Sax 解析器缺少开头元素

转载 作者:行者123 更新时间:2023-12-01 09:00:22 26 4
gpt4 key购买 nike

我在使用 java sax 解析器打开 stackoverflow 帖子 XML 转储时遇到问题。它识别每个元素的结尾,但似乎跳过了 startElement 方法。我使用示例代码:

 try {

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();

DefaultHandler handler = new DefaultHandler() {

public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {

System.out.println("Start Element :" + qName);

}

public void endElement(String uri, String localName,
String qName) throws SAXException {

System.out.println("End Element :" + qName);

}

public void characters(char ch[], int start, int length) throws SAXException {

}

};

saxParser.parse(filename, handler);

XML 的结构很简单,为具有许多属性的行:

<row Id="29621" "postTypeID=1" AcceptedAnswer...>

上面代码的输出很简单:

End Element :row

我尝试向 defaultHandler 内的方法添加 @Override 注释,但是如果我尝试覆盖 startElement,它会引发错误。谁能建议如何纠正此问题以及为什么 startElement 不能被覆盖?

最佳答案

如果您在添加 Override 注释时遇到错误,最可能的解释是您的方法的签名与您打算覆盖的方法的签名不太匹配。

来自Java 8 JavaDocs of the SAX DefaultParser:

public void startElement(String uri,
String localName,
String qName,
Attributes attributes)
throws SAXException

这看起来不错,但可能您使用的是不同的版本。

关于java - Sax 解析器缺少开头元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com