我对使用 XML 比较陌生,并且正在使用javax.xml.parsers.SAXParser
.
问题是:我需要的信息靠近 XML 文件的顶部,我不需要解析整个文档。-- 识别出相关信息后,停止解析文件的“最佳”方式是什么?
(到目前为止,我能想到的唯一方法是抛出异常。)
您可以使用 StAX。它实际上随时停止解析过程而不会引发任何异常。
查看:
http://www.xml.com/pub/a/2003/09/17/stax.html
http://jcp.org/en/jsr/detail?id=173
抛出异常是阻止它的唯一方法。有关示例,请参阅此 IBM XML 技巧。
您可能应该实现自己的异常来表示打算停止进一步处理。这样,您将能够区分故意停止处理和无意停止(遇到一些意外情况等时)
正如Tom 所述,抛出异常似乎是解决此问题的最佳方法:
public class MySAXTerminatorException extends SAXException {
...
}
public void startElement (String namespaceUri, String localName,
String qualifiedName, Attributes attributes)
throws SAXException {
if (someConditionOrOther) {
throw new MySAXTerminatorException();
}
...
}