2

我对使用 XML 比较陌生,并且正在使用javax.xml.parsers.SAXParser.

问题是:我需要的信息靠近 XML 文件的顶部,我不需要解析整个文档。-- 识别出相关信息后,停止解析文件的“最佳”方式是什么?

(到目前为止,我能想到的唯一方法是抛出异常。)

4

3 回答 3

2

您可以使用 StAX。它实际上随时停止解析过程而不会引发任何异常。

查看:

http://www.xml.com/pub/a/2003/09/17/stax.html

http://jcp.org/en/jsr/detail?id=173

于 2009-05-22T13:53:31.290 回答
2

抛出异常是阻止它的唯一方法。有关示例,请参阅此 IBM XML 技巧。

您可能应该实现自己的异常来表示打算停止进一步处理。这样,您将能够区分故意停止处理和无意停止(遇到一些意外情况等时)

于 2009-05-22T14:31:13.600 回答
1

正如Tom 所述,抛出异常似乎是解决此问题的最佳方法:

public class MySAXTerminatorException extends SAXException {
...
}

public void startElement (String namespaceUri, String localName,
                          String qualifiedName, Attributes attributes)
                        throws SAXException {
    if (someConditionOrOther) {
        throw new MySAXTerminatorException();
    }
    ...
}
于 2010-11-23T14:14:14.807 回答