- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Android 3.0+ 上没有错误,但只有在 Android 2.2、2.3.3 上当我尝试通过 XmlPullParser
解析一个小的 XML 文件时才会出现错误。 ,应用因错误而中断:
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
?
不知何故,我认为第二种方法会在性能较差的 Android 手机上造成额外的延迟。
编辑
我从调试器中提取 XML 内容,看到第一个赞以 \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 的样子(仅以字符开头)。
请指教!!!
最佳答案
我在应用程序上使用的数据文件遇到了同样的问题。在 android 2.3.* 上有这个异常,问题是 UTF-8 BOM,所以我在 Windows 上找到的更简单的解决方案是使用 Notepad++ 工具,它可以让你将文件编码转换为没有 BOM 的 UTF-8 和而已。
关于android - XmlPullParser:PI不能以xml开头,只能在Android 2.3.3以下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532401/
有一条(相对)众所周知的 Perl 公理:“只有 Perl 可以解析 Perl”。我想知道 Perl 6 是否仍然如此? 扩大讨论...考虑到 PyPy 最近的更新,我想到了这个问题。 Perl 独特
这是设置。在上一个问题中,我发现我可以通过子组件中的状态传递对象属性,然后使用 componentDidUpdate 获取该对象属性。在这种情况下,状态和属性都称为到达。 这是基本代码... expo
我运行的是 10.5.2 社区版。我已经标记了 源/主要/资源 作为源目录。我可以右键单击并“编译”某些文件,据我所知,这意味着 IDE 将文件复制到与发送类文件的“com.mydomain.pack
我是一名优秀的程序员,十分优秀!