核心代码四部分:
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>
相关推荐
当涉及到Android资源文件(如layout、string、color等)时,Android框架会自动解析XML文件。例如,在Activity中使用findViewById方法找到布局中的视图,实际上就是解析XML布局文件的结果。 4. **AndroidManifest....
《老罗Android开发视频教程》中关于“android解析xml文件”的部分,主要涵盖了如何在Android系统中处理XML数据,包括基础的DOM解析、SAX解析以及更高效的Pull解析器。 一、DOM解析 DOM(Document Object Model)...
- Android系统内置了对XML的支持,可以使用java.util DOM或SAX解析器,或者使用Android的XmlPullParser接口来生成XML。最常用的是DOM,因为它允许以树形结构处理XML文档,便于操作。 5. **字符资源与XML文件**: ...
这个例子可能包含了一个完整的Android项目,演示了如何使用PullParser解析XML文件。通常,这个示例会包括以下几个关键部分: - 创建PullParser实例:通过`XmlPullParserFactory`获取实例,然后设置解析器类型为`...
在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...
综上所述,这个压缩包可能包含有关如何在Android环境中高效且灵活地解析XML文件的示例代码、教程或最佳实践,对于理解和掌握Android开发中的XML处理具有很高的参考价值。通过学习这些方法,开发者能够更好地管理应用...
总结,XML Pull解析在Android开发中是一个重要的数据处理技术,尤其在处理大量XML数据时,其高效和低内存消耗的特点使其成为首选。理解和熟练掌握XML Pull解析,能够提升你的Android应用开发能力。通过实践`...
4. Android的XmlResourceParser:在Android框架中,`android.content.res.XmlResourceParser`接口提供了一种解析XML资源的方法,它同时支持Pull解析和SAX解析的特性。通常,当我们需要解析Android资源文件(如...
RESTful API通常返回XML格式的数据,Android可以使用`DefaultHttpClient`、`HttpURLConnection`或第三方库如Retrofit、OkHttp来获取网络数据,然后解析XML响应。 通过熟练掌握以上这些XML操作技术,开发者能够在...
在Android中,XML资源文件(如布局文件)可以通过`Resources.getXml(int resId)`获取一个`XmlResourceParser`对象。这个解析器结合了DOM和SAX的优点,它不是一次性加载整个文件,而是按需解析。这种方式适用于处理...
1. **解析XML**:使用Android的`XmlPullParser`或`SimpleXML`库解析XML文件。解析过程中,需要获取每个级别的数据,如省份、城市和县区的ID和名称,将这些数据存储到合适的数据结构中,比如ArrayList或者HashMap。 ...
Android系统会自动解析这些XML文件并创建对应的View对象。例如,`<LinearLayout>`定义了一个线性布局,`<TextView>`定义了一个文本视图。 ### 4. Android的SharedPreferences SharedPreferences也使用XML来存储...
在解析XML时,这些数据会被映射到Student对象,再由适配器填充到ListView的各个列表项。 11. **进度对话框(ProgressDialog)**: 当处理网络请求和XML解析时,通常会使用ProgressDialog显示进度,以提高用户体验。...
XML(Extensible Markup Language)是一种...通过这个"XML Test Demo",开发者可以深入理解Android中XML解析的各种方法,提高处理XML数据的能力。在实际项目中,选择合适的解析方式对优化应用性能和资源利用至关重要。
6. **XML编写**:DEMO可能展示了创建和修改XML文档的功能,如添加、删除、更新XML节点。 7. **异常处理**:在处理XML时,可能会遇到各种错误,如格式错误、网络问题等。DEMO应该包含适当的异常处理机制,确保程序的...
Android提供了Gson库方便将JSON转换为Java对象,或者使用XMLPullParser解析XML。在这个项目中,解析后的数据会被用于填充到UI中。 3. **异步处理**:由于网络操作是耗时的,应避免在主线程执行,防止应用出现卡顿。...
它允许应用程序在解析XML文档时仅需处理感兴趣的数据,而无需一次性加载整个文档到内存中,因此节省了内存资源。 Java中使用XmlPull解析XML的过程主要包括以下步骤: 1. **获取XmlPullParser**: 首先,你需要创建...
2. **XML或JSON解析**:由于WebService通常返回XML或JSON格式的数据,源码会包含解析这些数据的部分,如使用Android自带的XmlPullParser或第三方库如Gson、Jackson来将数据转换为Java对象。 3. **异步处理**:为了...
6. **Android权限管理**:由于涉及到社交媒体功能,可能需要申请如INTERNET、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE等权限,以便进行网络访问和文件操作。 7. **Android组件化**:在大型项目中,代码通常...