尝试解析某些 XML 时出现以下异常:
org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: not well-formed (invalid token)
主要问题是这种情况只发生在 Android 2.2 或 2.3 设备中,但最奇怪的是我第一次解析响应是可以的,但以下所有尝试都给了我解析异常。
我的代码如下:
URL url = new URL("http://m.ideasmusik.com/rss/?ct=mx");
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
//InputSource is = new InputSource("http://m.ideasmusik.com/rss/?ct=mx");
//is.setEncoding(HTTP.UTF_8);
// Parse content
MusicRSSParser parser = new MusicHandler.MusicRSSParser(); //DefaultHandler
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(parser);
InputSource in = new InputSource(url.openStream());//is.getByteStream());
in.setEncoding(HTTP.UTF_8);
xr.parse(in);
XML 是 UTF-8(我读过这是编码不正确的常见问题)。
对出了什么问题有任何猜测吗?我认为这可能与我的处理程序有关,但它在我的逻辑应用之前崩溃,就在startDocument()方法之后。
我尝试过使用 Url 而不是 InputStream,结果相同。
编辑
如果我去应用程序管理并擦除应用程序缓存,那么它第一次可以正常工作。它如何影响解析?