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

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 {
    /** Called when the activity is first created. */
    @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>

时间: 2024-09-19 16:12:38

Android使用Pull解析器解析xml文件的实现代码_Android的相关文章

Android中使用pull解析器操作xml文件的解决办法_Android

一.使用Pull解析器读取XML文件 除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件. Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE.如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件.android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的. Pull解析器的运行方式与SAX 解析器相似.

Android开发之使用Pull解析器生成XML文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 相关代码如下: public static String writeXML(List<Person> persons, Writer writer){     XmlSerializer serializer = Xml.newSe

Android开发8——利用pull解析器读写XML文件

  一.基本介绍 对XML解析有SAX和DOM等多种方式,Android中极力推荐xmlpull方式解析xml.xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar.   jar包下载网址http://www.xmlpull.org/http://kxml.sourceforge.net/   二.例子 读取到xml的声明返回数字0 START_DOC

java中采用Pull解析器对XML文件进行解析

一.基本介绍 Android中极力推荐xmlpull方式解析xml. xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar. jar包下载网址http://www.xmlpull.org/http://kxml.sourceforge.net/     二.例子 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1

android ListView内数据的动态添加与删除实例代码_Android

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

xml-使用DOM解析器 解析Android XML问题

问题描述 使用DOM解析器 解析Android XML问题 我使用Android中的Dom解析器来解析下面XML <offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=553&BEFID=93767&aon=%5E1&MerchantID=434524&crawler_id=1909400&dealId=TCk4NTG97Aa3wSQgh2U3FQ%3D%3D&url=

java-Java接收一个有关地图的XML,如何解析这个地图XML文件并把它显示在一个窗口上?

问题描述 Java接收一个有关地图的XML,如何解析这个地图XML文件并把它显示在一个窗口上? 请问,如果Myeclipse接收了一个XML文件,里面是关于绘制地图的点,线,位置坐标等的信息, 那该如何解析这个XML?最终目的是想把描述地图的XML文件能显示出一幅地图来? 有没有关于显示地图方面的代码参考,或者能指点一下思路,谢谢 解决方案 处理xml格式的文件或者文本字符串的话,需要使用java的xml处理工具如jdom,或dom4j都可以的. 其实本质上就是对xml的节点进行解析获取数据信息

android中读取根目录下的xml文件

问题描述 android中读取根目录下的xml文件 显示无法读取文件 package com.example.testreadxml; import java.io.IOException; import java.io.InputStream; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.app.Activity; import android

php中使用DOM类读取XML文件的实现代码_php技巧

主要功能:php中使用DOM类读取XML文件 设计知识点: 1.XML节点循环读取 2.用iconv()函数实现编码转换,防止中文乱码 holiday.xml文件如下 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <daysOff-overTime> <year> <yearName>2012</yearName> <holiday> <