Android XML PULL解析遇到的小问题



转载请注明出处:http://blog.csdn.net/wht3xr/article/details/24518395(来自wht3xr荣海游侠的csdn博客)


今天找了个系统是2.3.4的手机玩,测试发现自己的程序以前正常的地方,现在不正常了,让我灰常蛋疼。

问题描述:

服务器返回的数据是XML格式,然后是GBK编码,之前在4.0,4.1.2,4.3的系统解析,一切正常,当我拿2.3.4的机器测试时,问题出现了,XML不能解析,抛出异常:

org.xmlpull.v1.XmlPullParserException: Error parsing document. (position:line -1, column -1) caused by: org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: unknown encoding

纠结了半天,终于找到问题所在:

首先看我XmlPullParser的实例化:

XmlPullParser xmlPull = Xml.newPullParser();

这种实例化,对于UTF-8编码的xml文件解析,不管是2.3的系统还是4.0的系统,一切都正常,但是对于GBK编码的xml文件解析,就会出现上面的错误。(好深的坑啊 ( ̄▽ ̄)")


为了解决上面的问题,XmlPullParser的实例化需要修改一下:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
			XmlPullParser xmlPull = factory.newPullParser();

这样就解决了2.3系统无法解析GBK编码的xml的问题。


在工作过程中遇到的问题,希望能帮到大家。



你可能感兴趣的:(android,xml,pull,xmlpullparser)