关于Android的XML文件解析器Pull解析方式事件类型的分析
在解析XML文件的过程中,发现API文档中对于解析事件描述的不够详尽,给解析XML文件带来了不少的困扰,今天做了个事件类型分析的demo和大家分享一下。
第一步:新建一个Android工程文件,其他都不用改,只要在onCreate()方法中写一个xmlTest()方法即可,代码如下:
[java]
package com.example.xmltest;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xmlTest();
}
/**
* 测试Pull解析方式中的事件类型
*/
private void xmlTest() {
//定义事件类型
int eventType = 0;
try {
XmlResourceParser xrp = getResources().getXml(R.xml.timezones);
// 获取到xml文件时,XmlResourceParser的是指向文档开始处
eventType = xrp.getEventType();
// System.out.println("-------->"+eventType);//查看事件的数值
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
System.out.println("Start document");
break;
case XmlPullParser.START_TAG:
System.out.println("Start tag " + xrp.getName());
break;
case XmlPullParser.TEXT:
System.out.println("Text " + xrp.getText());
break;
case XmlPullParser.END_TAG:
System.out.println("End tag " + xrp.getName());
break;
default:
break;
}
eventType = xrp.next();
//System.out.println("-------->"+eventType);//查看事件的数值
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//判断事件类型是不是文档结束
if (eventType == XmlPullParser.END_DOCUMENT) {
System.out.println("End document");
}
}
}
package com.example.xmltest;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xmlTest();
}
/**
* 测试Pull解析方式中的事件类型
*/
private void xmlTest() {
//定义事件类型
int eventType = 0;
try {
XmlResourceParser xrp = getResources().getXml(R.xml.timezones);
// 获取到xml文件时,XmlResourceParser的是指向文档开始处
eventType = xrp.getEventType();
// System.out.println("-------->"+eventType);//查看事件的数值
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
System.out.println("Start document");
break;
case XmlPullParser.START_TAG:
System.out.println("Start tag " + xrp.getName());
break;
case XmlPullParser.TEXT:
System.out.println("Text " + xrp.getText());
break;
case XmlPullParser.END_TAG:
System.out.println("End tag " + xrp.getName());
break;
default:
break;
}
eventType = xrp.next();
//System.out.println("------
补充:移动开发 , Android ,