大家好,android在使用sax解析流文件时,由于种种原因,会报出ExpatParser$ParseException异常,非常非常令人头疼,而网上对此方面的资料又比较少,进而这种问题可能非常让人纠结,下面谈一下解决的方法:
InputStream in = new BufferedInputStream(url.getInputStream());
InputStreamReader isr = new InputStreamReader(in, "GB2312");//这一行非常重要,网上部分资料没有提到Reader定义编码,国外程序员写代码很多是不指定编码的,对于我们来讲,这个就必须指定了,否则就会报出org.apache.harmony.xml.ExpatParser$ParseException: At line .., column ..: not well-formed (invalid token);
解决方法就是指定完编码,然后就可创建解析工厂,code如下
SAXParserFactory factory = SAXParserFactory.newInstance();
XMLReader reader = null;
reader = factory.newSAXParser().getXMLReader();
reader.setContentHandler(new ResolveCustInoXml());// 解析类
reader.parse(new InputSource(isr));
in.close();
isr.close();