- 浏览: 334881 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。
1:
package cn.itcast.service; import java.io.InputStream; import java.io.OutputStream; import java.io.Writer; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import android.util.Xml; import cn.itcast.domain.Person; /** * 采用Pull解析XML内容 */ public class PULLPersonService { public static void save(List<Person> persons, Writer writer) throws Throwable{ XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(writer); 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(); writer.flush(); writer.close(); } public static List<Person> getPersons(InputStream inStream) throws Throwable{ List<Person> persons = null; Person person = null; XmlPullParser parser = Xml.newPullParser(); parser.setInput(inStream, "UTF-8"); int eventType = parser.getEventType();//产生第一个事件 while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件 switch (eventType) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: String name = parser.getName();//获取解析器当前指向的元素的名称 if("person".equals(name)){ person = new Person(); person.setId(new Integer(parser.getAttributeValue(0))); } if(person!=null){ if("name".equals(name)){ person.setName(parser.nextText());//获取解析器当前指向元素的下一个文本节点的值 } if("age".equals(name)){ person.setAge(new Short(parser.nextText())); } } break; case XmlPullParser.END_TAG: if("person".equals(parser.getName())){ persons.add(person); person = null; } break; } eventType = parser.next(); } return persons; } }
2:测试Pull解析XML文件及保存XML文件
public void testPullGetPersons() throws Throwable{ InputStream inStream = getClass().getClassLoader().getResourceAsStream("itcast.xml"); List<Person> persons = PULLPersonService.getPersons(inStream); for(Person person : persons){ Log.i(TAG, person.toString()); } } public void testSave() throws Throwable{ //File file = new File(this.getContext().getFilesDir(), "person.xml"); //FileOutputStream outStream = new FileOutputStream(file); List<Person> persons = new ArrayList<Person>(); persons.add(new Person(34, "lili", (short)12)); persons.add(new Person(56, "老毕", (short)32)); persons.add(new Person(39, "老张", (short)40)); /*FileOutputStream outStream = this.getContext().openFileOutput("person.xml", Context.MODE_PRIVATE); OutputStreamWriter writer = new OutputStreamWriter(outStream, "UTF-8"); BufferedWriter bWriter = new BufferedWriter(writer); */ StringWriter writer = new StringWriter(); PULLPersonService.save(persons, writer); Log.i(TAG, writer.toString()); }
可参考:http://www.cnblogs.com/zhangdongzi/archive/2011/04/15/2016828.html
发表评论
-
Android中AsyncTask的简单用法
2012-01-13 16:00 1192在开发Android移动客户端的时候往往要使用多线程来进行操 ... -
Android应用的自动升级、更新模块的实现 .
2011-11-16 14:01 694http://www.eoeandroid.com/threa ... -
一个APK反编译利器Apktool
2011-11-16 13:54 1614一个APK反编译利器Apktool APK 本地化 ... -
自定义Android标题栏TitleBar布局
2011-11-14 14:13 1279很多网友发现自己Android程序的标题栏TitleBar区域 ... -
Android GPS获取地理位置 .
2011-11-14 14:11 881import android.app.Activity; i ... -
android ListView详解
2011-11-14 13:48 1082在android开发中ListView是比较常用的组件,它以列 ... -
Android之Content provider 详解
2011-11-14 13:35 2504Android是如何实现应用程序之间数据共享的?一个应用程序可 ... -
Android源码地址
2011-11-12 19:14 1072http://blog.csdn.net/ilittleone ... -
android之File
2011-11-11 22:39 20321:Fileservice package cn.itcas ... -
Android知识补漏
2011-11-09 22:33 01:AndroidManifiest.xml < ... -
深入剖析Android消息机制
2011-11-09 14:13 979在Android中,线程内部或者线程之间进行信息交互时经常会使 ... -
Android之Handler详解(四)
2011-11-09 14:00 1302d、自己创建新的线程,然后在新线程中创建Looper,主线程调 ... -
Android之Handler详解(三)
2011-11-09 13:58 1382c、将消息队列绑定到子线程上,主线程只管通过Handl ... -
Android之Handler详解(二)
2011-11-09 13:54 1692二:sendMessage版本的Handl ... -
Android之Handler详解(一)
2011-11-09 13:22 2325一个Handler允许你发送和处理消息(Message)以及 ... -
关于StartActivityForResult方法的使用
2011-10-31 17:11 1121根据方法名可知 这个方法是要得到启动后的Activity返回的 ... -
Android 悬浮Activity并可拖动(访悬浮歌词)
2011-10-24 16:23 2132天天动听, 这款Android手机上的音乐播放器,相信不少朋友 ... -
Android GWES
2011-10-24 16:13 1225第八章 Android GWES 8.1 View Syst ... -
Android系统服务-WindowManager
2011-10-24 16:10 1477WindowManager是Android中一个重要的服务 ... -
http通信
2011-10-15 17:31 1116HTTP(HyperText Transfer Proto ...
相关推荐
本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...
android中读写xml文件简单demo,可以通过此代码来简单的读取xml配置文件
它的核心类是`org.xmlpull.v1.XmlPullParser`,它提供了一种迭代的方式解析XML,通过不断调用`next()`方法来获取下一个XML事件,如开始标签、结束标签、文本等。 三、Pull解析器的基本使用 1. 创建解析器:首先需要...
本教程将深入讲解如何在Android中解析XML文件,帮助开发者更好地理解和运用这一核心技术。 首先,Android提供了两种主要的XML解析方式:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。DOM解析...
"Android实现向本地写入一个XML文件和解析XML文件" Android实现向本地写入一个XML文件和解析XML文件是Android开发中常见的需求,特别是在网络存储过程中,XML文件解析和使用XML保存一些信息变得非常重要。下面我们...
以上就是“Android解析XML并使用WebView显示”的主要技术点,开发者需要理解并掌握这些知识点,才能在实际项目中顺利实现这一功能。通过不断实践和学习,我们可以更好地理解和运用这些工具,提升应用的质量和用户...
在Android开发中,由于其轻量级和低内存占用,Pull解析器常常被用来解析XML文档,尤其是在处理大数据量时,相比DOM和SAX解析器更为高效。 Pull解析器是一种事件驱动的解析方式,它不会一次性加载整个XML文档到内存...
正确解析XML需要理解这些基本元素及其关系。 - **DTD(Document Type Definition)**:定义XML文档结构的规范,可用来验证文档是否符合规定格式。 - **XML Schema**:更现代的验证方式,提供了比DTD更强大的数据...
在第一部分,文章通过代码示例指导如何在Android工程中新建一个用于解析XML文件的工程,并且使用SAX解析方法。首先,创建了一个名为MainActivity的Activity类,该类继承自Android的Activity基类。在MainActivity的...
Android提供了多种解析XML的方法,包括DOM(Document Object Model)、SAX(Simple API for XML)和Pull三种方式。对于较小的文件,推荐使用DOM解析器;对于较大的文件或者需要逐行处理的情况,则建议使用SAX或Pull...
1.4 解析XML 解析过程通常包含以下步骤: - `next()`: 使解析器移动到下一个事件。 - 检查当前事件类型:`START_DOCUMENT`, `END_DOCUMENT`, `START_TAG`, `END_TAG`, `TEXT`等。 - 处理事件:根据事件类型,读取...
XPP3是一个XML Pull解析器,提供了一个高效的XML解析机制,为XStream提供解析XML的基础。 以下是如何在Android中使用XStream的一个简要示例: 1. 添加依赖:首先,将XStream库文件添加到项目的lib目录,并在...
本压缩包文件"安卓Android源码——比较通用的xml解析方法.zip"可能包含了一些关于如何在Android系统中解析XML的通用方法和技术。以下是关于Android XML解析的一些关键知识点: 1. **DOM解析**: - DOM(Document ...
- 示例代码:创建一个SAX解析器实例,设置处理器,然后调用`parse()`方法解析XML文件。 4. DOM解析: - DOM解析将整个XML文档加载到内存中形成一棵树形结构,可以方便地通过节点遍历和操作。适合小规模、频繁读写...
Android系统提供了多种方式来读取和处理XML文件,包括DOM(Document Object Model)、SAX(Simple API for XML)和PullParser等方法。下面我们将详细探讨这些方法以及如何在Android应用中有效地使用XML读取库。 1. ...
XMLPullParser是Android SDK提供的一种解析XML的API,它可以顺序地读取XML文档,逐个处理开始标签、结束标签、文本等事件,这样可以有效地控制内存使用。 **Json读写解析** 方面,Android提供了Gson库,一个Java...
Android解析XML格式数据的三种方法 XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的...
- 使用DOM解析器读取XML时,首先需要创建`DocumentBuilderFactory`实例,然后使用`newDocumentBuilder()`方法生成`DocumentBuilder`,接着调用`parse()`方法解析XML文件。 - 对于SAX解析,需要创建`XMLReader`,...