如何随时停止用SAX解析xml文档?

2022-09-01 17:10:28

我用Sax解析一个大的xml文档,我想在建立某些条件时停止解析文档吗?怎么办?


答案 1

创建 SAXException 的特化并抛出它(您不必创建自己的特化,但这意味着您可以自己专门捕获它,并将其他 SAXException 视为实际错误)。

public class MySAXTerminatorException extends SAXException {
    ...
}

public void startElement (String namespaceUri, String localName,
                           String qualifiedName, Attributes attributes)
                        throws SAXException {
    if (someConditionOrOther) {
        throw new MySAXTerminatorException();
    }
    ...
}

答案 2

我不知道除了 Tom 概述的异常引发技术之外,还有一种中止 SAX 解析的机制。另一种方法是切换到使用 StAX 解析器(请参阅拉取与推送)。


推荐