gpt4 book ai didi

android - 在 Android 中解析资源文件时出现 XmlPullParserException

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:51 32 4
gpt4 key购买 nike

我正在尝试解析资源文件夹中的 XML 文件。这就是我想要做的 -

public void loadXMLtoDB() {

Resources resource = mContext.getResources();
dbInstance = new DBProvider();
dbInstance.onCreate();
try{
XmlResourceParser parser = resource.getXml(R.xml.default_apps);

parser.nextTag();
readApps(parser);

} catch (Exception e) {
e.printStackTrace();
}
}....

private void readApps(XmlResourceParser parser) throws XmlPullParserException, IOException {

parser.require(XmlPullParser.START_TAG, null, "appsList");

while(parser.next() != XmlPullParser.END_TAG){
if(parser.getEventType() != XmlPullParser.START_TAG)
continue;

String name = parser.getName();

if(name.equals("appIcon")){
readAppIcon(parser);
}
else
skip(parser);
}
} .....

这是我的 XML 文件 -

<appsList xmlns:launcher="http://schemas.android.com/apk/res/com.example.kids" >
<appIcon>
<className>com.sec.android.app.camera.Camera</className>
<iconPosition>0</iconPosition>
<packageName>com.sec.android.app.camera</packageName>
<screen>0</screen>
</appIcon>
<appIcon>
<className>com.sec.android.gallery3d.app.Gallery</className>
<iconPosition>1</iconPosition>
<packageName>com.sec.android.gallery3d</packageName>
<screen>0</screen>
</appIcon>
</appsList>

这是我得到的异常:
org.xmlpull.v1.XmlPullParserException:
二进制 XML 文件行 #-1:预期的开始或结束标记(位置:二进制 XML 文件行 #-1)

据我所知,XML 没问题 - 但存在 XMLParsing 异常。

最佳答案

这是错误的-

  1. parser.nextTag(); 应替换为 parser.next();
  2. 由于这是 res/xml 文件夹中的 XML 文件,我们在打开文件时得到的是 XmlResourceParser 而不是 InputStream。此外,当我们为 XmlPullParser 执行 setInput() 时,解析器会前进到下一个高级标记(准确地说是 START_DOCUMENT)。因此,我们需要执行 parser.next() 两次 而不是只执行一次,然后才会执行 parser.require(XmlPullParser.START_TAG, null, "appsList ") 正确。

关于android - 在 Android 中解析资源文件时出现 XmlPullParserException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955542/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com