当前位置:编程学习 > XML/UML >>

关于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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,