仅在ICS上的XmlPullParserException

时间:2012-07-12 09:30:07

标签: android xml-parsing android-4.0-ice-cream-sandwich xmlpullparser

我的问题是我必须解析像{/ p>这样的HTML数据

84 101 <br>some text<br><table border='1'>Here comes a table definition</table>

并在以下内容中引发XmlPullParserException

while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_TAG) {
        // do something
    } else if (eventType == XmlPullParser.END_TAG) {
        // do something else 
    }

    eventType = xpp.next(); // the XmlPullParserException is thrown here, on method next()
}

非常有趣和奇怪的部分是:只在Nexus S(操作系统版本4.0.4)上抛出异常,在操作系统版本较低的设备上,此方法效果很好。< / p>

错误消息如下:

org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT 84 101 @1:8 in java.io.StringReader@414e3248)

任何人都可以解释一下为什么这只发生在ICS上? 感谢。

2 个答案:

答案 0 :(得分:0)

1)字符编码:您使用的是与Nexus S不同的编码吗?您的文件是用ANSI还是utf解码的?将其与您的Nexus S编码进行比较。

2)Charset:你在XML文件中使用不同的字符集吗?例如,您使用的是中文字吗? Nexus S的默认值是什么?

这是前两个要检查的事项。

答案 1 :(得分:0)

将CDATA用作html标签

Everything inside a CDATA section is ignored by the parser.

A CDATA section starts with "<![CDATA[" and ends with "]]>"