yad*_*_vi 4 android xmlpullparser
我正在尝试解析我在资源文件夹中的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);
}
} .....
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
这是我得到的例外: org.xmlpull.v1.XmlPullParserException:
Binary XML file line #-1: expected start or end tag (position:Binary XML file line #-1)
据我所知,XML是好的 - 但是有一个XMLParsing异常.
yad*_*_vi 10
这是错的 -
parser.nextTag(); 应该被替换 parser.next();res/xml夹中的XML文件,因此我们在打开文件时得到的XmlResourceParser不是InputStream.此外,当我们setInput()为XmlPullParser解析器执行操作时,会将其提升到下一个高级令牌(START_DOCUMENT准确地说).因此,我们需要做parser.next() 两次而不是只做一次,然后才会parser.require(XmlPullParser.START_TAG, null, "appsList")是正确的.| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |