Pull解析XML
XmlPullParser解析器的运行方式与SAX解析器相似.它提供了类似的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数值代码被发送,因此可以根据不同的事件代码值来进行不同的处理.通过parser.getEventType()方法来取得事件的代码值(如XmlPullParser.START_DOCUMENT、XmlPullParser.START_TAG、XmlPullParser.END_TAG).
当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可调用它的nextText()获取本节点的值。
具体思路:
*构建PullXmlParser解析器
XmlPullParser parser = Xml.newPullParser();
*将xml文档注册到解析器中
parser.setInput();
*触发事件,获得事件类型码
int event = parser.getEventType();
*针对事件进行具体分析
"name".equals(parser.getName());//判断开始标签元素是否是name
parser.getAttributeValue(0);//得到标签的属性值
parser.nextText();//获取下一个Text节点的值
*触发并进入下一个事件
event = parser.next();
Pull解析和Sax解析不一样的地方有:
(1)pull读取xml文件后触发相应的事件调用方法返回的是数字
(2)pull可以在程序中控制想解析到哪里就可以停止解析。
优点:不是一次加载,中途可以停止
**************pull解析相关代码***************
public class PullparserActivity extends Activity {
private TextView mtextview;
private ListView mlistview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.domparser);
mtextview = (TextView) findViewById(R.id.textView1);
mlistview = (ListView) findViewById(R.id.listView1);
mtextview.setText("pull解析xml");
List<Student> list = parser();
ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this,
android.R.layout.simple_list_item_1, list);
mlistview.setAdapter(adapter);
}
private List<Student> parser() {
List<Student> list = new ArrayList<Student>();
// 获取pull解析器
XmlPullParser parser = Xml.newPullParser();
try {
// 加载xml文档
parser.setInput(PullparserActivity.this.getClassLoader()
.getResourceAsStream("student.xml"), "utf-8");
// c.触发事件,获得事件类型码
int event = parser.getEventType();
Student student = null;
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_DOCUMENT:// 文档开始
break;
case XmlPullParser.START_TAG:// 开始标签
if ("student".equals(parser.getName())) {
student = new Student();
student.setId(Integer.valueOf(parser
.getAttributeValue(0)));
}
Log.i("TAG", "infor");
if (student != null) {
if ("name".equals(parser.getName())) {
student.setName(parser.nextText());
} else if ("age".equals(parser.getName())) {
student.setAge(Integer.valueOf(parser
.getAttributeValue(0)));
}
}
break;
case XmlPullParser.END_TAG://結束标签
if ("student".equals(parser.getName())) {
list.add(student);
student = null;
}
Log.i("TAG", "infor");
break;
case XmlPullParser.TEXT:// 文本解析
break;
}
event = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
分享到:
相关推荐
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
"Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...
"Android Pull解析Demo"就是这样一个示例,它展示了如何利用Android系统内置的Pull解析器(PullParser)来解析XML文档,同时结合Java的反射机制,动态地获取类中的变量值。下面我们将深入探讨这两个关键知识点。 **...
本项目"android pull解析 创建xmlw文件"是一个完整的工程示例,旨在帮助开发者理解和应用XML Pull解析来创建XML文件,尤其是XMLW格式的文件。下面我们将详细探讨XML Pull解析的工作原理以及如何在Android中实现。 1...
该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...
首先,我们来理解什么是PULL解析。 PULL解析是一种事件驱动的解析方式,由Android SDK提供。它与SAX解析类似,但更适用于移动设备,因为内存占用较低且控制更灵活。PULL解析器在读取XML时,会触发一系列的事件,...
在Android开发中,处理XML数据是一项常见的任务,无论是从网络获取数据还是本地资源,XML都是一个常见的数据交换格式。...通过理解PULL解析的工作原理和使用方法,开发者可以更好地优化应用性能,提高用户体验。
在提供的压缩包文件`pullparsexml`中,可能包含了关于XML Pull解析的示例代码或教程资源,进一步帮助开发者理解和实践XML Pull解析。通过学习和实践,开发者能够更好地掌握这一技术,并将其应用于Android应用的开发...
本文将深入探讨Android中的Pull解析,以及如何利用它来解析本地的XML文件,包括天气信息和经纬度信息。 首先,让我们了解什么是Pull解析。Pull解析器(XMLPullParser)是由Android SDK提供的API,用于读取XML文档。...
XML(eXtensible Markup Language)是一种用于...理解和熟练掌握XML Pull解析,能够提升你的Android应用开发能力。通过实践`WZWXmlParse`项目,你可以更好地理解XML Pull解析的工作原理,并将其应用到自己的项目中。
在Android开发中,XML是一种常见的数据格式,用于存储和传输数据。...理解并熟练掌握XML PULL解析器对于Android开发者来说是非常重要的,因为它可以帮助你在资源有限的移动设备上有效地处理XML数据。
理解并熟练运用Pull解析器对于提升Android应用的数据处理能力至关重要。 总的来说,Android中的Pull解析器提供了一种高效且易于使用的XML处理方式,无论是解析还是生成,都能满足大部分需求。通过以上讲解,你应该...
在Android开发中,Pull解析是一种常见的数据解析方式,主要用于处理...通过学习和实践"Android学习Pull解析"的例子,你可以提升处理数据的能力,理解如何高效地解析和操作数据流,从而优化应用程序的性能和用户体验。
XML(eXtensible Markup Language)是...通过学习和理解这些代码,开发者可以更好地理解和运用XML Pull解析,提高应用程序的性能和用户体验。对于处理大型XML文件或者网络数据流,Pull解析无疑是Android开发中的利器。
接下来,我们来看PULL解析,它是Android特有的解析方式,也基于事件驱动,但比SAX更轻量级,API设计更符合Android的编程风格。PULL解析器通过调用`PullParser`对象的`next()`方法,不断拉取下一个事件,直到没有更多...
【Android Pull解析XML】 在Android开发中,处理XML数据时,常常会用到两种轻量级的解析方式:SAX解析和Pull解析。...同时,Pull解析API简单直观,易于理解和实现,是Android开发中处理XML数据的一个实用选择。
本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...
本文将深入探讨如何在Android中生成XML文件以及如何使用PULL解析器来解析XML数据。 首先,我们来看一下如何在Android中生成XML文件。生成XML文件通常涉及创建一个XMLWriter对象,然后通过调用其方法来添加元素、...
Android特有的Pull解析器类似于SAX,也是事件驱动的,但API设计更简洁,易于使用。它提供了一种向前读取的模型,开发者通过调用next()方法获取下一个事件,直到解析完成。Pull解析器适合移动设备,因为它节省内存且...
"Pull解析xml Android"这个主题聚焦于Android平台下使用Pull解析器处理XML数据的方法。 Pull解析(XMLPullParser)是Android提供的一种轻量级、低内存消耗的XML解析方式。它不同于DOM解析器(将整个XML文档加载到...