`
dcj3sjt126com
  • 浏览: 1872551 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android第六个功能:XmlPullParser解析XML文件

阅读更多

核心代码四部分:

1、xml文件放src下面

2、实体类

3、服务类

4、测试类

5、添加测试相关代码在项目配置文件中

6、运行测试,查看结果

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="1">
        <name>dcj</name>
        <age>23</age>
    </person>
    <person id="2">
        <name>lqq</name>
        <age>23</age>
    </person>
</persons>

 

package com.dcj.domain;

public class Person {
	private Integer id;
	private String name;
	private Integer age;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
}

 

package com.dcj.service;

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

import org.xmlpull.v1.XmlPullParser;

import android.util.Xml;

import com.dcj.domain.Person;

public class PersonService {
	public static List<Person> getPersons(InputStream xml) throws Exception {
		List<Person> persons = null;
		Person person = null;
		XmlPullParser pullParser = Xml.newPullParser();
		pullParser.setInput(xml, "UTF-8");
		int event = pullParser.getEventType();
		while (event != XmlPullParser.END_DOCUMENT) {
			switch (event) {
			case XmlPullParser.START_DOCUMENT:
				persons = new ArrayList<Person>();
				break;
			case XmlPullParser.START_TAG:
				if ("person".equals(pullParser.getName())) {
					int id = new Integer(pullParser.getAttributeValue(0));
					person = new Person();
					person.setId(id);
				}
				if ("name".equals(pullParser.getName())) {
					String name = pullParser.nextText();
					person.setName(name);
				}
				if ("age".equals(pullParser.getName())) {
					int age = new Integer(pullParser.nextText());
					person.setAge(age);
				}
				break;
			case XmlPullParser.END_TAG:
				if("person".equals(pullParser.getName())) {
					persons.add(person);
					person = null;
				}
				break;
			}
			event = pullParser.next();
		}
		return persons;
	}
}

 

package com.dcj.test;

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

import com.dcj.domain.Person;
import com.dcj.service.PersonService;
import android.test.AndroidTestCase;
import android.util.Log;

public class PersonServiceTest extends AndroidTestCase {

	private static final String TAG = "PersonServiceTest";
	public void testPersons() throws Exception {
		InputStream xml =this.getClass().getClassLoader().getResourceAsStream("person.xml");
		List<Person> persons = PersonService.getPersons(xml);
		for (Person person : persons) {
			Log.i(TAG, person.toString());
		}
	}
	
}

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dcj"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.dcj" 
        android:label="Test for my App"/>
     
</manifest>

 

 

 

  • 大小: 61.4 KB
分享到:
评论

相关推荐

    android-xml文件解析教程

    当涉及到Android资源文件(如layout、string、color等)时,Android框架会自动解析XML文件。例如,在Activity中使用findViewById方法找到布局中的视图,实际上就是解析XML布局文件的结果。 4. **AndroidManifest....

    android解析xml文件《老罗Android开发视频教程》

    《老罗Android开发视频教程》中关于“android解析xml文件”的部分,主要涵盖了如何在Android系统中处理XML数据,包括基础的DOM解析、SAX解析以及更高效的Pull解析器。 一、DOM解析 DOM(Document Object Model)...

    android 读取Excel文件转成xml文件

    - Android系统内置了对XML的支持,可以使用java.util DOM或SAX解析器,或者使用Android的XmlPullParser接口来生成XML。最常用的是DOM,因为它允许以树形结构处理XML文档,便于操作。 5. **字符资源与XML文件**: ...

    android实例xml解析

    这个例子可能包含了一个完整的Android项目,演示了如何使用PullParser解析XML文件。通常,这个示例会包括以下几个关键部分: - 创建PullParser实例:通过`XmlPullParserFactory`获取实例,然后设置解析器类型为`...

    13pull解析xml天气信息

    在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...

    安卓Android源码——比较通用的xml解析方法.zip

    综上所述,这个压缩包可能包含有关如何在Android环境中高效且灵活地解析XML文件的示例代码、教程或最佳实践,对于理解和掌握Android开发中的XML处理具有很高的参考价值。通过学习这些方法,开发者能够更好地管理应用...

    android 安卓xml pull解析

    总结,XML Pull解析在Android开发中是一个重要的数据处理技术,尤其在处理大量XML数据时,其高效和低内存消耗的特点使其成为首选。理解和熟练掌握XML Pull解析,能够提升你的Android应用开发能力。通过实践`...

    Android应用源码之比较通用的xml解析方法.zip

    4. Android的XmlResourceParser:在Android框架中,`android.content.res.XmlResourceParser`接口提供了一种解析XML资源的方法,它同时支持Pull解析和SAX解析的特性。通常,当我们需要解析Android资源文件(如...

    android下对xml的基本操作

    RESTful API通常返回XML格式的数据,Android可以使用`DefaultHttpClient`、`HttpURLConnection`或第三方库如Retrofit、OkHttp来获取网络数据,然后解析XML响应。 通过熟练掌握以上这些XML操作技术,开发者能够在...

    Android高级应用源码-比较通用的xml解析方法.zip

    在Android中,XML资源文件(如布局文件)可以通过`Resources.getXml(int resId)`获取一个`XmlResourceParser`对象。这个解析器结合了DOM和SAX的优点,它不是一次性加载整个文件,而是按需解析。这种方式适用于处理...

    spinner三级联动,解析xml

    1. **解析XML**:使用Android的`XmlPullParser`或`SimpleXML`库解析XML文件。解析过程中,需要获取每个级别的数据,如省份、城市和县区的ID和名称,将这些数据存储到合适的数据结构中,比如ArrayList或者HashMap。 ...

    安卓xml解析

    Android系统会自动解析这些XML文件并创建对应的View对象。例如,`&lt;LinearLayout&gt;`定义了一个线性布局,`&lt;TextView&gt;`定义了一个文本视图。 ### 4. Android的SharedPreferences SharedPreferences也使用XML来存储...

    Android解析XML(PULL)展示到ListView

    在解析XML时,这些数据会被映射到Student对象,再由适配器填充到ListView的各个列表项。 11. **进度对话框(ProgressDialog)**: 当处理网络请求和XML解析时,通常会使用ProgressDialog显示进度,以提高用户体验。...

    XML Test Demo

    XML(Extensible Markup Language)是一种...通过这个"XML Test Demo",开发者可以深入理解Android中XML解析的各种方法,提高处理XML数据的能力。在实际项目中,选择合适的解析方式对优化应用性能和资源利用至关重要。

    XmlHealperDemo_XmlHelper_DEMO_源码

    6. **XML编写**:DEMO可能展示了创建和修改XML文档的功能,如添加、删除、更新XML节点。 7. **异常处理**:在处理XML时,可能会遇到各种错误,如格式错误、网络问题等。DEMO应该包含适当的异常处理机制,确保程序的...

    Android查询城市天气源代码

    Android提供了Gson库方便将JSON转换为Java对象,或者使用XMLPullParser解析XML。在这个项目中,解析后的数据会被用于填充到UI中。 3. **异步处理**:由于网络操作是耗时的,应避免在主线程执行,防止应用出现卡顿。...

    XmlPull:第一次从网上解析xml

    它允许应用程序在解析XML文档时仅需处理感兴趣的数据,而无需一次性加载整个文档到内存中,因此节省了内存资源。 Java中使用XmlPull解析XML的过程主要包括以下步骤: 1. **获取XmlPullParser**: 首先,你需要创建...

    安卓Android源码——WebService航班查询源码.zip

    2. **XML或JSON解析**:由于WebService通常返回XML或JSON格式的数据,源码会包含解析这些数据的部分,如使用Android自带的XmlPullParser或第三方库如Gson、Jackson来将数据转换为Java对象。 3. **异步处理**:为了...

    新浪微博相关的android源代码

    6. **Android权限管理**:由于涉及到社交媒体功能,可能需要申请如INTERNET、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE等权限,以便进行网络访问和文件操作。 7. **Android组件化**:在大型项目中,代码通常...

Global site tag (gtag.js) - Google Analytics