【问题标题】:XmlPullParserException only on ICSXmlPullParserException 仅在 ICS 上
【发布时间】:2012-07-12 00:39:28
【问题描述】:

我的问题是我必须解析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)上引发,在操作系统版本较低的设备上,此方法运行良好。

错误信息如下:

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

谁能解释一下为什么这只发生在 ICS 上? 谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    2) 字符集:您是否在 XML 文件中使用了不同的字符集。例如,您是否使用任何汉字? Nexus S 的默认设置是什么?

    这是要检查的前两件事。

    【讨论】:

    • 字符编码和字符集都是一样的。我认为这是一个操作系统问题。
    • 嗨! @Erol 我在 XML 文件中使用中文字符。有什么办法可以在不删除这些汉字的情况下解决问题?
    【解决方案2】:

    为你的 html 标签使用 CDATA

    Everything inside a CDATA section is ignored by the parser.

    CDATA 部分以“”开头并以“]]>”结尾

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多