对于大学作业,我需要编写一个 SAX 解析器和一个过滤器来读取原始 XML 文件,然后创建一个新的修改过的文件。分配要求我的程序需要通过控制台运行“java Sax inputFileDestination OutputFileDestination”,并且它要求只有一个文件。我的意思是我需要在 Sax.java 中实现接口。我熟悉内部类,但我不知道如何使用外部类中的 main 方法来实现它。
有什么建议吗?
考虑在另一个具有main
. 然后将该main
方法作为测试代码放在您的 MySAXParser 类中。
XML 解析器使用 SPI(服务提供者接口)提供一个带有 META-INF/MANIFEST.MF 的 jar。您可能会考虑做与奖金相同的事情。
其他内部类可以private static
是独立的,或者只是private
存储一个额外的外部MySAXParser.this
;所以经常犯的一个错误就是忘记static
。
由于这是一个作业,我不会发布任何代码,而是解释如何去做。
我认为你根本不需要一个内部类来做到这一点。您的类将有一个 main 方法,该方法创建一个 SAXParser,并将自身 (this) 注册为回调。然后,您将从 HandlerBase 中实现所需的 SAX 方法(startElement、endElement、characters)。
您所做的只是编写一个 SAXParser,然后在其上添加一个 main() 方法,因此它将从命令行运行。