我正在使用 Android 中的 SAX 解析器解析一个非常简单的 XML 模式。
一个示例文件是
<Lists>
<List name="foo">
<Note title="note 1" .../>
<Note title="note 2" .../>
</List>
<List name="bar">
<Note title="note 3" .../>
</List>
</Lists>
... 将更多的笔记数据表示为不重要的属性。
我使用 SAX 解析器来解析文档,并且只实现startElement
HandlerBase 的 'endElement' 方法来处理 Note 和 List 节点。
但是,在某些情况下,文件可能非常大,需要一些时间来处理。我希望能够随时中止解析过程(即用户按下取消按钮)。
我想出的最好方法是在满足某些条件(即为boolean stopParsing
真)时从我的 startElement 方法中抛出异常。
有一个更好的方法吗?
我一直使用 DOM 样式解析器,所以我并不完全了解 SAX 解析器。
最后一点,我在 Android 上运行它,所以我会让 Parser 在工作线程上运行以保持 UI 响应。如果您知道如何在解析器运行时安全地终止线程,那也可以回答我的问题。