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