我在 Android 3.0+ 上没有错误,但只有在 Android 2.2、2.3.3 上,当我尝试通过 解析一个小的 XML 文件时XmlPullParser
,应用程序因错误而中断:
org.xmlpull.v1.XmlPullParserException: PI must not start with xml
(position:unknown @1:5 in java.io.InputStreamReader@40568770)
错误中提到的 PI 是什么???
我发现这可能会导致 XML 文件 ( <?xml version="1.0" encoding="utf-8"?>
) 的第一行,但我没有找到在较低的 Android 版本上发生这种情况的原因。
如果这是错误的原因(XML 文件的第一行),我该如何解决?
我应该:
a) 要求 Web 服务器的管理员更改 XML?如果是,他应该在 XML 中更改什么?
b) 子字符串InputStream
使用BufferedReader
?
不知何故,我认为第二种方法会在弱安卓手机上造成额外的延迟。
编辑
我从调试器中提取 XML 内容,看到第一个 like 以 结尾\r\n
,然后下一个字符开始。这对你有什么影响吗?
这就是 XML 文件的样子。这是一个很小的应用程序崩溃的视觉原因。
<?xml version="1.0" encoding="utf-8"?>
<song>
<artist>Pink Floyd</artist>
<title>Shine On You Crazy Diamond</title>
<picture>http://www.xxyz.com/images/image.jpg</picture>
<time>Fri, 23 Nov 2012 11:22:31 GMT</time>
</song>
这就是从这个 XML 中获取的 InputStream 的样子(仅起始字符)。
请指教!!!