之前写了一个程序需要读取本地XML文件,测试成功就放过了,今天无意间发现了这个异常,虽然说只是Warining,不过每次看着logcat都看到一堆的信息就烦。。。 为了让自己心情好点,所以决定干掉这个异常。
org.apache.harmony.xml.ExpatParser$ParseException: At line ., column .: not well-formed (invalid token);
直接看这个异常的名字ParseException----解析异常,not well-formed----格式不好、格式不是很规范,所以可能出错的原因是:1、XML文件写的格式出问题,2、读取XML文件时出问题,3、解析的时候出问题。有点废话,不过就是这样。 一般情况下,都是第2点出问题,也就是从本地XML读取后,读取的数据出错了,我的程序就是这个问题,也是一个新手问题。 private void readconfigOn(String Path) { File f = new File(Path); String path = f.getAbsolutePath(); FileInputStream fileIS; byte[] resultByte = new byte[512]; int length = 0; try { fileIS = new FileInputStream(path); length = fileIS.read(resultByte); } catch (IOException e1) { //e1.printStackTrace(); return; // no file make it return } //String resultStr = new String(resultByte); 这样是错的,这样在原XML文件内容后面再加上一堆乱码 String resultStr = new String(resultByte,0,length); //根据从XML文件读取byte的个数进行截取 Log.d(TAG,resultStr); //查看下要传给解析器的数据
//我上网搜索的时候,有些人是sb.append("line="+line); 之后改sb.append(line);就好了,其实也是第2点问题
try {
SAXParserFactory factory = SAXParserFactory.newInstance(); XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setContentHandler(new IPConfigHandler()); reader.parse(new InputSource(new StringReader(resultStr))); } catch (Exception e) { e.printStackTrace(); } }
现在不抛异常啦,看着就是舒服。
android用SAX解析xml文件时抛出org.apache.harmony.xml.ExpatParser$ParseException异常的解决方法
最新推荐文章于 2015-12-10 11:46:00 发布