我正在使用Android SAX解析器來搜索相當大(6MB)的XML文件中的條目。我基本上使用清單8 here中顯示的代碼的衍生物。我有的問題是,如果我的匹配找到了,我該如何停止解析?顯示的代碼繼續解析整個文件的末尾,但我想在此之前停止。這是可能的還是我需要使用SAX以外的東西(例如XmlPullParser?)當發現匹配時從Xml.parse退出
0
A
回答
0
那麼DiskCrasher, 每個Sax解析器都會一直工作到結束,但是如果你仍然想在它的中間停止它工作中,您可以隨時檢查條件並使用返回語句。
但是更好的選擇性解析方法是使用XML PullParser,因爲這個解析器一般可以實時工作,並且在不加載整個文件的情況下爲您提供數據。這樣,您可以隨時檢查條件並退出循環,甚至無需使用大內存塊...
希望這對您有幫助!
0
當你得到一個匹配時,你可以拋出異常。異常可以捕獲匹配信息並將傳播到原始parse()調用者。捕獲異常並測試它是否基於獲得匹配或真正的解析錯誤並據此進行處理。
1
生成ArithmeticException並捕獲它! if (condition) { int a=1; a/=0; }
...
try {
Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
}
catch (ArithmeticException e) {
return true;
}
這是可怕的,但它的工作原理...
+0
只需拋出一個未檢查的異常,就像NullPointer或Arithmetic – Phate 2012-09-30 21:47:08
相關問題
- 1. 當從python退出時出現「StackHash_0a9e error」
- 2. 每當發出警告時退出
- 3. 當發現匹配時獲取數組的其他部分
- 4. 訪問dll時發現模糊匹配
- 5. 退出時出現'InvalidComObjectException'?
- 6. 退出時出現異常
- 7. Python supress grep不匹配退出狀態
- 8. Python 3出現匹配
- 9. 匹配第一次出現?
- 10. 匹配 - 第一次出現
- 11. 匹配首次發現出現停止閱讀
- 12. Ubuntu:Sendmail退出時出現錯誤70
- 13. 退出命令時出現FTP錯誤
- 14. 退出時出現SystemExit和NameError問題
- 15. 發生,當它退出函數
- 16. 當發現匹配時搜索數組並返回所有鍵和值
- 17. 當字符串出現兩次時匹配的正則表達式
- 18. 當在SpatialLines中提取柵格值時出現「ID不匹配」錯誤
- 19. 當調用「FolderPath」(文件夾的路徑)時出現類型不匹配錯誤
- 20. Scala:當我使用「Option」時,爲什麼會出現類型不匹配錯誤?
- 21. 當我單擊後退按鈕時出現Bootstrap模式
- 22. 當用戶輸入退出或退出時打破循環c#
- 23. 當主線程退出時,如何讓子線程退出?
- 24. Facebook退出按鈕(iOS SDK)在退出時適當延遲
- 25. 當我將多個自定義匹配器分配給單個方法時,Mockito會出現奇怪的現象
- 26. 按下後退按鈕時出現Ch 0123退出
- 27. Parsec如果發現匹配,然後拋出錯誤
- 28. 發行簡介當前匹配特設
- 29. 當獲取它的線程退出時,Mutex會發生什麼?
- 30. 當環路退出時,節點https回調不會觸發
謝謝,但我不能發出從匿名內部類return語句。 – 2010-08-18 23:54:12