核心代码五部分:
1、实体类
2、服务类
3、测试类
4、添加测试相关代码在项目配置文件中
5、运行测试,查看结果
package com.dcj.domain; public class Person { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public Person() { super(); } public Person(Integer id, String name, Integer age) { super(); this.id = id; this.name = name; this.age = age; } 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.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import com.dcj.domain.Person; import android.util.Xml; public class PersonService { /** * 获取数据 * @param xml * @return * @throws Exception */ 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; } /** * 保存数据 * @param persons 数据 * @param out 输出方向 * @throws Exception */ public static void save(List<Person> persons, OutputStream out) throws Exception { XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(out, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for (Person person : persons ) { serializer.startTag(null, "person"); serializer.attribute(null, "id", person.getId().toString()); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(person.getAge().toString()); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); out.flush(); out.close(); } }
package com.dcj.test; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.ArrayList; 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()); } } public void testSave() throws Exception { List<Person> persons = new ArrayList<Person>(); persons.add(new Person(43, "zhangsan", 80)); persons.add(new Person(12, "lili", 20)); persons.add(new Person(78, "xiaoxiao", 8)); // <包>/files 在当前应用所在包的files文件夹中生成文件 File xmlFile = new File(getContext().getFilesDir(), "dcj.xml"); FileOutputStream outStream = new FileOutputStream(xmlFile); PersonService.save(persons, outStream); } }
<?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>
执行测试方法,会在当前应用下新建一个files文件夹,然后里面有一个dcj.xml,数据如下
相关推荐
在Android平台上,有时候我们需要处理Excel数据,例如读取其中的内容并转换为XML文件,以便更好地在应用程序中使用或与其他系统交换数据。这个项目提供了一种方法来实现这一目标,利用了jxl.jar库来处理Excel文件,...
"android实例xml解析"这个主题主要涉及如何在Android应用中处理XML文件,包括读取、解析和操作XML内容。以下是对这个主题的详细阐述: 1. XML简介: XML(eXtensible Markup Language)是一种可扩展标记语言,它...
每个布局文件包含了各种视图(如TextView、Button等)及其属性,可以使用`LayoutInflater`将XML布局转换为View对象并添加到界面上。 6. **Android资源XML**: Android项目中,如字符串、颜色、尺寸等资源通常以XML...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于Android开发中,用于存储配置、数据交换等。在Android系统中,XML解析主要有两种方式:DOM解析和PULL解析。本文将深入探讨Android中的XML ...
Android社区提供了一些第三方XML解析库,如PullParsers(简化Pull解析API)和TinyXML(一个小巧的C++库,可集成到Android项目中)。这些库通常具有特定优势,如更简单的API或更高的性能。 7. **Android Data ...
在安卓(Android)开发中,XML(eXtensible Markup Language)被广泛用于存储和传输数据,例如应用程序的配置文件、布局文件等。本压缩包文件"安卓Android源码——比较通用的xml解析方法.zip"可能包含了一些关于如何...
在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...
7. **第7章:Android中的Socket编程** - 建立TCP或UDP连接,实现客户端和服务端的通信。 - 使用InputStream和OutputStream进行数据传输。 - 异步Socket通信,避免阻塞主线程。 - 数据的序列化和反序列化,如使用...
6. **XML编写**:DEMO可能展示了创建和修改XML文档的功能,如添加、删除、更新XML节点。 7. **异常处理**:在处理XML时,可能会遇到各种错误,如格式错误、网络问题等。DEMO应该包含适当的异常处理机制,确保程序的...
1. **解析XML**:使用Android的`XmlPullParser`或`SimpleXML`库解析XML文件。解析过程中,需要获取每个级别的数据,如省份、城市和县区的ID和名称,将这些数据存储到合适的数据结构中,比如ArrayList或者HashMap。 ...
解析XML文件时,可以使用Android自带的XmlPullParser或者第三方库如TinyXML或Jsoup。解析后的数据将被存储在本地,通常采用SQLite数据库以便离线访问。 对于文件名列表中的图片文件,它们可能是RSS条目中包含的缩略...
在这个"android源代码 Rss阅读器"项目中,开发者提供了一个自编写的源代码实例,旨在帮助初学者和经验丰富的开发者了解如何在Android上构建一个功能完善的RSS阅读器。 首先,我们来深入理解RSS(Really Simple ...
2. **XML或JSON解析**:由于WebService通常返回XML或JSON格式的数据,源码会包含解析这些数据的部分,如使用Android自带的XmlPullParser或第三方库如Gson、Jackson来将数据转换为Java对象。 3. **异步处理**:为了...
Android SDK提供了解析XML的内置支持,例如`XmlPullParser`。开发者也可以选择第三方库,如`TinyXML`或`PullParser`,它们提供了更简便的API来处理XML文档。 2. **网络请求**:为了获取RSS源的内容,我们需要发送...
1. **Android开发**:这个项目是为Android平台设计的,Android是一个开源的操作系统,主要用于移动设备,如智能手机和平板电脑。开发者通常使用Java或Kotlin进行编程,通过Android Studio集成开发环境进行应用开发。...
在本教程中,我们将深入探讨如何使用Android开发一个RSS阅读器应用。RSS(Really Simple Syndication)是一种数据格式,用于发布新闻、博客和其他定期更新的内容。RSS阅读器可以帮助用户订阅并集中阅读这些内容,...
- 解析XML:使用`XmlPullParser`或`DocumentBuilderFactory`创建解析器,然后遍历XML节点提取数据。 5. **两次跳转**: - 这可能意味着案例中有两个目标Activity,A到B,然后B到C,或者可能是A到C,中间经过一个...
在Android平台上,RSS阅读器是一种常见的应用,它允许用户订阅并获取来自各种在线新闻源、博客和其他内容提供者的更新。这个“Android软件RSS阅读器源代码”提供了开发此类应用的具体实现,是学习和理解Android应用...
Android的`HttpURLConnection`类或者第三方库如`Volley`、`OkHttp`可以实现这一功能。注意,由于Android的网络访问限制,需要在`AndroidManifest.xml`中添加相应的权限声明。 3. **异步处理**:考虑到网络操作可能...