栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android使用Pull解析器解析xml文件的实现代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android使用Pull解析器解析xml文件的实现代码

2个类:1个实体类Person.java,1个继承Activity的类

 

1.Person.java

复制代码 代码如下:
package com.mrzhu.work_1_sax;

public class Person {
 private String personId;
 private String name;
 private String address;
 private String tel;
 private String fax;
 private String email;

 public String getPersonId() {
  return personId;
 }

 public void setPersonId(String personId) {
  this.personId = personId;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 public String getTel() {
  return tel;
 }

 public void setTel(String tel) {
  this.tel = tel;
 }

 public String getFax() {
  return fax;
 }

 public void setFax(String fax) {
  this.fax = fax;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 @Override
 public String toString() {
  return "Person [personId=" + personId + ", name=" + name + ", address="
    + address + ", tel=" + tel + ", fax=" + fax + ", email="
    + email + "]";
 }
}

2.继承Activity的类:

复制代码 代码如下:
package com.mrzhu.work_1_sax;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.widget.Toast;

public class PullActivity extends Activity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void pull(View v){
     pullParse(); 
    }

    public void pullParse(){
     List persons = null;
     Person person = null;
     InputStream in = null;
     try {
      XmlPullParser pullParser = Xml.newPullParser();
      in = getAssets().open("person.xml");
   pullParser.setInput(in, "utf-8");
   int eventType = pullParser.getEventType();
   while(eventType != XmlPullParser.END_document){
    String qName = pullParser.getName();
    switch(eventType){
    case XmlPullParser.START_document:
     persons = new ArrayList();
     break;
    case XmlPullParser.START_TAG:
     if("person".equalsIgnoreCase(qName)){
      person = new Person();
      person.setPersonId(pullParser.getAttributevalue(null, "personid"));
     }else if("name".equalsIgnoreCase(qName)){
      person.setName(pullParser.nextText());
     }else if("address".equalsIgnoreCase(qName)){
      person.setAddress(pullParser.nextText());
     }else if("tel".equalsIgnoreCase(qName)){
      person.setTel(pullParser.nextText());
     }else if("fax".equalsIgnoreCase(qName)){
      person.setFax(pullParser.nextText());
     }else if("email".equalsIgnoreCase(qName)){
      person.setEmail(pullParser.nextText());
     }
     break;
    case XmlPullParser.END_TAG:
     if("person".equalsIgnoreCase(qName)){
      persons.add(person);
     }
     break;
    }
    eventType = pullParser.next();
   }
   in.close();
  } catch (XmlPullParserException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

     for (Person person2 : persons) {
   Toast.makeText(this, person2.toString(), Toast.LENGTH_SHORT).show();
  }
    }
}

main.xml

复制代码 代码如下:

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

            android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="pull"
        android:text="pull" />


放在assets文件夹下的person.xml文件

复制代码 代码如下:


 
  Tony Blair
  10 Downing Street, London, UK
  (061) 98765
  (061) 98765
  blair@everywhere.com
 

 
  Bill Clinton
  White House, USA
  (001) 6400 98765
  (001) 6400 98765
  bill@everywhere.com
 

 
  Tom Cruise
  57 Jumbo Street, New York, USA
  (001) 4500 67859
  (001) 4500 67859
  cruise@everywhere.com
 

 
  Linda Goodman
  78 Crax Lane, London, UK
  (061) 54 56789
  (061) 54 56789
  linda@everywhere.com
 


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/165530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号