文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-06 10:59

关注

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<Person> 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<Person>();
     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

代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>

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

代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<people>
 <person personid="E01">
  <name>Tony Blair</name>
  <address>10 Downing Street, London, UK</address>
  <tel>(061) 98765</tel>
  <fax>(061) 98765</fax>
  <email>blair@everywhere.com</email>
 </person>
 <person personid="E02">
  <name>Bill Clinton</name>
  <address>White House, USA</address>
  <tel>(001) 6400 98765</tel>
  <fax>(001) 6400 98765</fax>
  <email>bill@everywhere.com</email>
 </person>
 <person personid="E03">
  <name>Tom Cruise</name>
  <address>57 Jumbo Street, New York, USA</address>
  <tel>(001) 4500 67859</tel>
  <fax>(001) 4500 67859</fax>
  <email>cruise@everywhere.com</email>
 </person>
 <person personid="E04">
  <name>Linda Goodman</name>
  <address>78 Crax Lane, London, UK</address>
  <tel>(061) 54 56789</tel>
  <fax>(061) 54 56789</fax>
  <email>linda@everywhere.com</email>
 </person>
</people>

您可能感兴趣的文章:Android中使用sax解析xml文件的方法Android 解析XML 文件的四种方法总结Android中使用PULL方式解析XML文件深入介绍Android 使用Pull方法解析XML文件的方法Android开发之XML文件解析的使用android编程之XML文件解析方法详解(附源码)Android中使用pull解析器操作xml文件的解决办法android开发基础教程—三种方式实现xml文件解析Android开发之DOM解析xml文件的方法Android中对xml文件解析的3种方式总结


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯