0
我有一個問題,我的XML文件加載緩慢,並且在開始解析之前沒有完成下載,從我的解析器中拋出xml格式不正常的異常,顯示文件未完整下載。如何讓SAX解析器在解析之前等待文件完成下載?
從logcat的完整的誤差爲 「ERROR /錯誤(323):errororg.apache.harmony.xml.ExpatParser $ ParseException的:在第10行,列46:沒有很好地形成(標記無效)」
我知道這個xml文件是正確的,因爲它有時會起作用,我也可以在瀏覽器中查看它並查看它。
在繼續和解析xml數據之前,使解析器等待InputSource的最佳方式是什麼?
下面的代碼是我用來獲取文件並解析它的代碼。
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
GradeHandler gradeHandler = new GradeHandler();
xr.setContentHandler(gradeHandler);
URL url = new URL("https://url/to/xml/file");
HttpsURLConnection ucon = (HttpsURLConnection)url.openConnection();
ucon.setHostnameVerifier(new AllowAllHostnameVerifier());
xr.parse(new InputSource(new BufferedInputStream(ucon.getInputStream())));
這與我的方法有同樣的問題。在解析文件之前,整個文件沒有被抓取,導致解析器拋出無效的令牌異常。 – 2010-09-21 14:11:02
如何?如果您從InputStream中讀取,直到EOF,您將擁有整個文件。情況並非如此嗎? – Kevin 2010-09-21 17:31:20